多组异常处理

语法

 1 try:
 2     # 可能引发异常的代码
 3 except ExceptionType1:
 4     # 处理第一种异常的代码
 5 except ExceptionType2:
 6     # 处理第二种异常的代码
 7 except:
 8     # 处理其他所有异常的代码
 9 finally:
10     # 无论是否发生异常,都会执行的代码

在上述语法中,ExceptionType1ExceptionType2是具体的异常类或异常类的基类。你可以根据需要定义和处理不同类型的异常(注意顺序)。

try块中的代码可能引发的异常会被逐个匹配到相应的except块。如果发生了与except块中指定的异常类型匹配的异常,就会执行该except块中的代码。如果没有匹配到任何except块,异常将传播到上一级调用者或全局范围。

最后,finally块中的代码始终会执行,无论是否发生了异常。它通常用于释放资源或执行清理操作。

示例

 1 try:
 2     num1 = int(input("请输入第一个数字: "))
 3     num2 = int(input("请输入第二个数字: "))
 4     result = num1 / num2
 5     print("结果:", result)
 6 except ValueError:
 7     print("请输入有效的整数")
 8 except ZeroDivisionError:
 9     print("除数不能为零")
10 except Exception as e:
11     print("发生了未知异常:", str(e))
12 finally:
13     print("程序结束")

 

 使用一个关键字except捕获多个异常(不推荐)

 1 '''
 2 当我们想要使用一个except语句来捕获多个异常时,可以将这些异常类型作为元组传递给except关键字。
 3 这样,如果发生的异常类型与元组中的任何一个匹配,就会执行相应的代码块。
 4 语法:
 5     try:
 6         # 可能引发异常的代码
 7     except (ExceptionType1, ExceptionType2, ...):
 8         # 处理多个异常的代码
 9 (ExceptionType1, ExceptionType2, ...)是一个包含多个异常类型的元组。当发生的异常类型与元组中的任何一个匹配时,就会执行相应的except块中的代码
10 '''
11 
12 try:
13     num1 = int(input("请输入第一个数字: "))
14     num2 = int(input("请输入第二个数字: "))
15     result = num1 / num2
16     print("结果:", result)
17 except (ValueError, ZeroDivisionError):
18     print("输入无效或除数不能为零")
19 except Exception as e:
20     print("发生了未知异常:", str(e))
21 finally:
22     print("程序结束")

 

posted @ 2023-07-22 10:26  Allen_Hao  阅读(28)  评论(0)    收藏  举报