注:本文所有代码均经过Python 3.7实际运行检验,保证其严谨性。
本文阅读时间约为2分钟。
Python异常处理机制
Python代码运行过程中可能遭遇各种错误。常见的错误类型有:
- 语法错误:SyntaxError。
- 除以0错误:ZeroDivisionError。
- 列表下标越界错误:IndexError。
- 类型错误:TypeError。
- 访问变量不存在错误:NameError。
- 字典关键字不存在错误:KeyError。
- 未知的变量属性错误:AttributeError。
以上这些错误会引起程序终止退出,如果希望掌控意外,就需要在可能出错误的地方设置陷阱,捕捉错误。用try-except语句来设置陷阱。
try:
<检测语句>
except <错误类型> [as e]:
<处理异常>
else:
<语句块>
finally:
<语句块>
try语句:为缩进的代码设置陷阱。
except语句:处理错误的代码。
else语句:没有出错时执行的代码。
finally语句:无论出错与否,都会执行这个语句。
针对不同异常可以设置多个except。
一个处理异常的代码实例
def divideNew(x, y):
try:
result = x / y
except ZeroDivisionError as e:
print("division by zero! " + str(e))
except TypeError:
divideNew(int(x), int(y))
else:
print("result is", result)
#当try后面的except语句没有执行时,将执行else语句。
finally:
print("executing finally clause") #finally语句无论如何都会被执行
print(divideNew(3, 2))
>>>
result is 1.5
executing finally clause
None
>>>
To be continued.