异常处理
异常介绍
异常就是程序出现错误,然后就会终止程序的运行。
一般情况下,程序出现异常时会出现三个信息。
- 异常的定位。某行代码出现错误。
- 异常的类型。根据错误的种类,报出错误 的类型
- 异常的描述信息。
异常分为两种类型:
- 语法错误。这种错误是不该出现的错误,必须在程序运行之前就改正,是不合乎语法规范的。
- 逻辑错误。只要不是语法错误,都属于逻辑错误。逻辑错误也分为两类。
- 可以提前预知错误出现的条件。
- 错误发生的条件是无法预知的。
异常处理
针对语法错误的话,必须立即进行纠正处理。
针对逻辑错误的第一种情况,即可以提前预知异常出现的条件,那么可以使用if判断对异常的条件进行规避。
那么逻辑错误的第二种情况就有些难以处理了,由于不知道异常的具体情况,所以无法使用if判断,这时候引入了python 的一种新的关键字:try...except.
# 完整语法
try:
可能出现错误的子代码块
except 错误类型1 (as e): # 可以起别名,也可不起
异常类型1出现之后执行的代码块
except 错误类型2 (as e):
异常类型2出现之后执行的代码块
......
else:
不出现任何异常信息执行的代码块
finally:
无论是否出现异常都会执行的代码块
Exception可以接收任何错误类型。
在可能出现错误的字=子代码块中,一旦出现错误,那么就不会执行错误之后的代码,而是直接进行错误捕捉或者其他的操作。
这种语法结构一般会有一下几种:
- try..finally..
- try..except..
- try..except..else..
- try..except..finally
- try..except..else..finally
一般情况下,finally主要是存放一些用于回收系统资源的操作。
使用raise关键字可以主动抛出异常,并且可以自定义异常描述信息。