手动抛异常(raise)

复制代码
 1 '''
 2 在Python中,raise关键字用于抛出异常。它允许程序员手动引发异常,以便在特定的条件下进行错误处理或向调用者报告错误/异常。
 3 1. raise语句
 4     raise语句用于引发异常,并可选择提供一个异常类型和一个可选的异常消息。
 5     当raise语句被执行时,程序将立即停止当前的执行流程,并且控制权将转移到最近的异常处理器。
 6     语法: raise ExceptionType("Exception message")
 7         其中,ExceptionType是指要引发的异常类型,可以是Python内置的异常类型(如ValueError、TypeError等),也可以是自定义的异常类型。
 8         Exception message是一个可选的字符串,用于描述异常的具体信息。
 9 
10 
11 2. 最佳实践
12     1. 使用合适的异常类型:根据情况选择合适的异常类型,这样可以提供更准确的错误信息。
13     2. 提供明确的异常消息:为了使调试和错误追踪更容易,提供清晰、明确的异常消息是很重要的。
14     3. 避免滥用raise:raise应该只在必要的情况下使用,不应该被滥用成为处理控制流程的手段。
15 
16 '''
17 
18 
19 # 抛出内置异常
20 def divide(a, b):
21     if b == 0:
22         raise ZeroDivisionError("除数不能为零")
23     return a / b
24 
25 
26 try:
27     result = divide(10, 0)
28 except ZeroDivisionError as e:
29     print(e)
30 
31 
32 # 抛出自定义异常
33 class CustomException(Exception):
34     pass
35 
36 
37 def process_data(data):
38     if not isinstance(data, str):
39         raise CustomException("数据类型错误")
40     # 其他处理逻辑
41 
42 
43 try:
44     process_data(100)
45 except CustomException as e:
46     print(e)
复制代码

输出:

  除数不能为零
  数据类型错误

 

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