Python-异常处理
异常处理
异常捕获
-
try-expect
语句i = input("请输入一个非零十进制数: ") y = 123 try: result = y / int(i) print(result) print("{0} / {1} = {2}".format(y, i, result)) except ZeroDivisionError as e1: print("异常: {}".format(e1)) except ValueError as e2: print("异常: {}".format(e2)) # 多重异常捕获, 合并相同的处理: # except (ZeroDivisionError, ValueError) as e: # print("异常: {}".format(e)) # # 最后省略异常类型的except代码块用来捕获上面没有匹配的异常类. # except: # print("某种异常") finally: # 释放资源 print("资源释放...") -
语句嵌套
i = input("请输入一个非零十进制数: ") y = 123 try: i2 = int(i) try: result = y / i2 print("{0} / {1} = {2}".format(y, i2, result)) except ZeroDivisionError as e2: print("异常: {}".format(e2)) except ValueError as e1: print("异常: {}".format(e1)) finally: # 释放资源 print("资源释放...")
自定义异常类
class CE(Exception): def __init__(self, message): super().__init__(message)
手动引发异常
-
raise
class CE(Exception): def __init__(self, message): super().__init__(message) i = input("请输入一个非零十进制数: ") y = 123 try: result = y/int(i) print("{0} / {1} = {2}".format(y, i, result)) except ZeroDivisionError as e1: raise CE("除数为零!") except ValueError as e2: raise CE("无效数字!") # 请输入一个非零十进制数: 0 # Traceback (most recent call last): # File "F:\day12_.py", line 10, in <module> # result = y / int(i) # ZeroDivisionError: division by zero # # During handling of the above exception, another exception occurred: # # Traceback (most recent call last): # File "F:\day12_.py", line 13, in <module> # raise CE("除数为零!") # __main__.CE: 除数为零!
本文作者:khrushchefox
本文链接:https://www.cnblogs.com/khrushchefox/p/16618278.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步