Python进阶之路 9.3.3 用同一个代码块处理多个异常

版权声明:本教程只限学习交流,不得用于商业用途。 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异常
******执行异常处理程序******

注意,在这里每个人运行的可能都会不一样,因为用了随机参数。

猜你喜欢

转载自blog.csdn.net/weixin_45086637/article/details/91049038