异常(Exception)指的是运行期间检测到的错误被称为异常。
为了让我们的程序在运行过程中,遇到一些“问题”(可以预知,但不能无视)的时候,仍然能够根据问题进行处理,让程序能够继续的运行下去。
场景:
面对用户输入被除数为0,是程序崩溃、终止?还是给出用户提示,让程序继续运行。
用户输入错误,就是“异常”,我们对这样的情况进行处理,就是“异常处理”。
案例:
a = input("请输入一个整数:")
print(int(a))
n = input("请输入被除数:")
m = input("请输入除数:")
res = float(n)/float(m)
print("res:", res)
上述代码在用户输入不同内容时,会产生不同的错误提示:
- 用户输入的不是数字,无法计算,例如:a,b。错误类型是:ValueError: could not convert string to float
- 用户输入的除数是0。错误类型是:ZeroDivisionError: float division by zero
可以通过充分的条件判断,让程序继续运行。
捕获异常
try ... except ...
语法:
try:
可能产生异常的代码
except [错误类型]:
产生错误时的处理方法
示例:
try:
print('----test1----')
open('123.txt', 'r')
print('----test2----')
except IOError:
pass
说明:
- 此程序看不到任何错误,因为用except捕获到了IOError异常,并添加了处理的方法
- pass表示实现了相应的实现,但什么也不做,如果把pass改为print语句,那么就会输出其他信息
捕获多个异常
语法:
try:
可能产生异常的代码
except (错误类型1, 错误类型2, ...):
产生错误时的处理方法
# 如果对于不同的异常进行不同的处理,可以使用多个except语句
try:
可能产生异常的代码
except 错误类型1:
产生错误1时的处理方法
except 错误类型2:
产生错误2时的处理方法
...