版权声明:本教程只限学习交流,不得用于商业用途。 https://blog.csdn.net/weixin_45086637/article/details/91049038
9.3.3 用同一个代码块处理多个异常
虽然代码块可能抛出多个异常,但有时多个异常的处理程序可以是一个,在这种情况下,如果用多个except子句捕捉这些异常,就需要在每一个except子句中使用同一段代码处理这些异常。为了解决这个问题,except子句允许指定多个异常,这样指定后,同一个except子句就可以捕捉多个异常了。
try:
...
except(异常类1,异常类2,异常类3,...异常类n):
...
[例 9.4] 本例定义了一个raiseException函数,用于随机抛出三个自定义异常,然后用同一个except子句捕捉这三个异常。
# 第1个自定义异常类
class customexception1(Exception):
pass
# 第2个自定义异常类
class customexception2(Exception):
pass
# 第3个自定义异常类
class customexception3(Exception):
pass
# 导入random模块
import random
# 随机抛出前面3个自定义异常
def raiseException():
n = random.randint(1,3) # 随机参数1到3的随机整数
print('抛出customexception{}异常'.format(n))
if n == 1:
raise customexception1 # 抛出customexception1
elif n == 2:
raise customexception2 # 抛出customexception2
else:
raise customexception3 # 抛出customexception3
try:
raiseException() # 随机抛出3个异常
# 使用except子句同时捕捉这3个异常
except(customexception1,customexception2,customexception3):
print('******执行异常处理程序******')
输出结果:
抛出customexception2异常
******执行异常处理程序******
注意,在这里每个人运行的可能都会不一样,因为用了随机参数。