多组异常处理

语法

复制代码
 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 @   Allen_Hao  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示