【python】详解异常(Exception)信息捕捉获取与处理

异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置并进行调试。python用异常对象(exception object)来表示异常。遇到错误后会引发异常,如果异常未被处理或捕捉,程序就会用所谓的回溯(traceback)终止执行。

1、raise语句
为了引发异常,可以使用一个类(应该是exception的子类)或者实例参数调用raise语句。使用类时,程序会自动创建类的一个实例。

2、内建异常类

  • Exception : 所有异常的基类
  • AttributeError : 特征引用或者复制失败时引发
  • IOError : 试图打开不存在文件(包括其他情况)时引发
  • IndexError : 在使用序列不存在的索引引发
  • Key Error : 在使用映射不存在的键时引发
  • NameError : 在找不到名字(变量)时引发
  • SyntaxError : 在代码为错误形式时引发
  • TypeError : 在内建操作或者函数应用于错误类型的对象时引发
  • ValueError : 在内建操作或者函数应用与正确类型的对象,但是该对象使用不合适的值时引发
  • ZeroDivisionError : 在除法或者模除操作的第二个参数为0时引发

3、自定义异常类型

  • Python中也可以自定义自己的特殊类型的异常,英语词性缩写只需要确保从Exception类继承(直接或间接)即可:

4、捕捉异常

  • Python中使用try/except关键字来捕捉异常

5、捕捉多个异常

  • 如果需要一个块捕捉多个类型异常,那么可以将他们作为元组输出
  • 如果需要一个块捕捉多个类型异常,那么可以继续使用except Exception

6、捕获对象

  • 记录异常的同时,程序不会中断停止
  • 全捕获异常对象,那么使用except中忽略所有的异常类:
  • 如果没有异常出现,外加使用else语句实现

设定一个输入正确才break退出的程序:

7、 finally子句

  • finally子句和try子句联合使用但是和except语句不同,finally不管try子句内部是否有异常发生,都会执行finally子句内的代码
  • finally常用于关闭文件或者在Socket中
  • finally用于清洗异常

or 继续定义 x=10:

将try与except语句结合,得到捕获异常对象,并最终执行finally语句:

posted @ 2018-11-28 14:21  赵莉  阅读(1249)  评论(0编辑  收藏  举报
友情链接:回力鞋 | 中老年服装 | 新航道雅思 | 雅思培训机构 | SAT培训 | www.chat845.com