一、简介

在实际的工作过程中,我们会遇到各种问题,比如文件不存在,代码运行不符合某些特定逻辑等,程序在运行时,遇到这些问题便会发生异常。英文是Exception。

a = float(input('请输入一个数字:'))

b = float(input('请输入另一个数字:'))

c = a/b

print(c)

在上面的这个程序中,要求我们输入数字,但当我们输入了字符时,不符合代码运行规则,因此出现错误。

二、异常处理

使用try…except来处理异常。我们把语句放在try模块中,把错误处理语句放在except 中。

也可以使用多个except,如try…except…except…

try:

    a = float(input('请输入一个数字:'))

    b = float(input('请输入另一个数字:'))

    c = a / b

    print(c)

except ValueError:

    print('输入必须为数字')

except ZeroDivisionError:

print('除数不能为0')

使用异常后,输入错误时则执行相应的异常部分的程序块

三、try….finally结构

在程序执行的过程中,有的程序块无论是否发生异常,我们都希望它能够执行,这时就引入了finally结构。在finally结构后面的程序便是能够执行的程序。通常用来释放try中申请的资源。

try:

    w = open('C:/love.txt','r')   #打开文件love.txt,模式为r,表示不存在则报错

    text = w.readline() #读取一行的数据

    print(text)

except :          #发生异常执行

    print('文件未找到')

finally:

    print('执行完毕')

    try:   #文件不存在,关闭会产生异常

        w.close()

    except BaseException as a:    #打印异常产生的原因

        print(a)

执行结果:

四、with 语句

Finally块由于是否发生异常都会执行,所以通常用于释放资源的代码,with语句也可以轻松的实现这种功能。

with上下文管理可以自动管理资源,在with模块中,无论是否发生异常,总能保证资源的释放。

with open(‘F:/sum.txt’, “r”)  as f:

  content = f.readline()

  print(content)

print(‘执行完毕,恢复进入代码之前的状态’)

该程序表示打开F盘的sum.txt文件,读写模式为只读(r)模式。读完之后程序会自动关闭。

执行结果:

按时符文工房

执行完毕,恢复进入代码之前的状态

五、traceback模块

捕获并打印异常

import traceback

try:

    print('开始')

    a = 10/0

except:

traceback.print_exc()

运行结果:

import traceback

try:

    print('开始')

    a = 10/0

except:

    with open('F:/sum.txt', 'a') as f:

        traceback.print_exc(file=f)

该程序表示如果发生异常时,打开F盘的sum文件,读写模式为a(只能写,表示文件不存在则创建该文件)。把异常写入文件中。

输出结果:

Sum文件中:

09-Python异常的更多相关文章

  1. python 异常

    引用一段来自菜鸟教程的文章:http://www.runoob.com/python/python-exceptions.html Python 异常处理 python提供了两个非常重要的功能来处理p ...

  2. #21 Python异常

    前言 运行程序时经常遇到各种错误,例如:ImportError(导入模块错误).IndexError(索引错误).NameError(变量错误).SyntaxError(语法错误).Indentati ...

  3. Python异常和异常处理

    Python异常和异常处理2017年12月20日 22:17:08 Megustas_JJC 阅读数:114 标签: python 异常处理 更多 个人分类: Python 版权声明:本文为博主原创文 ...

  4. python——异常except语句用法与引发异常

    except: #捕获所有异常 except: <异常名>: #捕获指定异常 except:<异常名1,异常名2):捕获异常1或者异常2 except:<异常名>,< ...

  5. 笔记-python异常信息输出

    笔记-python异常信息输出 1.      异常信息输出 python异常捕获使用try-except-else-finally语句: 在except 语句中可以使用except as e,然后通 ...

  6. python异常捕获异常堆栈输出

    python异常捕获异常堆栈输出 学习了:https://blog.csdn.net/chris_grass/article/details/77927902 import traceback def ...

  7. 小学生绞尽脑汁也学不会的python(异常,约束,MD5加密,日志处理)

    小学生绞尽脑汁也学不会的python(异常,约束,MD5加密,日志处理) 异常处理(处理) 1.产生异常.raise 异常类(),抛出异常2. 处理异常: try: xxxxx # 尝试执行的代码. ...

  8. python 异常之进阶操作

    1.文件分析 下面来做一些文件分析操作,分析整本书的信息. 知识点: string.split():将字符串分解为列表. open(filename,‘rb’)或者open(filename,enco ...

  9. Python异常类型及包含关系

    Python异常类型及包含关系,设计异常捕获时参考: BaseException +-- SystemExit +-- KeyboardInterrupt +-- GeneratorExit +-- ...

  10. 如何处理python异常

    1.python异常有那些? window的机器如果安装了python,则直接可以在idle中查看,打开idle,按F1即可打开帮助文档,按如下路径即可查看,也可以去python官网查看这里不说明了百 ...

随机推荐

  1. TensorFlow从0到1之TensorFlow csv文件读取数据(14)

    大多数人了解 Pandas 及其在处理大数据文件方面的实用性.TensorFlow 提供了读取这种文件的方法. 前面章节中,介绍了如何在 TensorFlow 中读取文件,本节将重点介绍如何从 CSV ...

  2. StringBuilder(拼接字符串省内存)

    观察如下代码: String s = ""; for (int i = 0; i < 1000; i++) { s = s + "," + i; } 虽然 ...

  3. Flutter学习笔记(32)--PointerEvent事件处理

    如需转载,请注明出处:Flutter学习笔记(32)--PointerEvent事件处理 在Android原生的开发中,对于事件的处理,我们都知道事件分为down.move.up事件,对于ViewGr ...

  4. [经验栈]C#监测IPv4v6网速及流量

    1.前言   最近做项目需要用到监测网速及流量,我经过百度和墙内谷歌都没能快速发现监测IPV6流量和网速的用例:也经过自己的一番查询和调试,浪费了不少时间,现在作为经验分享出来希望大家指正. 2.C# ...

  5. SQLserver 的分页存储过程

      -- 1.建立修改学生数据的存储过程 -- 2.建立根据班级Id和学生姓名模糊查询的分页存储过程,要求正确输出总记录数,总页数-- (输入班学生姓名 计算总记录数 计算总页数) -- @name ...

  6. http 的8中请求方式:

    http 的8中请求方式: 1.OPTIONS 返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能性 2.HEAD 向服务器索与GET请求相一致 ...

  7. redis编译报错总结

    redis编译报错总结: 1.不能编译没有GCC 编译工具安装报错:问题1:make时可能会报如下错误cc -c -std=c99 -pedantic -O2 -Wall -W   -g -rdyna ...

  8. 深入理解JVM(③)虚拟机的类加载时机

    前言 Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称为虚拟机的类加载机制. 类加载的时机 一个类型 ...

  9. Flask项目实战:创建电影网站(2)

    flask网站制作后台时候常见流程总结 安利一个神神器: 百度脑图PC版 创建数据库 下面是创建User数据库,需要导入db库 #coding:utf8 from flask import Flask ...

  10. My97DatePicker 4.8

    https://jeesite.gitee.io/front/my97/demo/index.htm