[Python学习篇] Python异常
什么是异常?
异常(Exception)是指在程序执行过程中发生的错误事件,它会中断程序的正常执行流程。异常可以由程序中的错误引发,也可以通过主动抛出异常来处理特殊情况。Python 使用异常处理机制来捕获和处理这些错误,以避免程序崩溃,并允许程序有机会做出适当的响应。
语法:
使用 try-except
块来捕获和处理异常。
try:
# 可能引发异常的代码
# raise 用于主动抛出异常
except Exception as e: # 捕获指定异常类型
# 处理异常的代码
else:
# 如果没有发生异常,执行这部分代码
finally:
# 无论是否发生异常,都会执行这部分代码
示例:
try:
1 / 0 # 除零异常
except Exception as e:
print(f"发生异常了,except处理异常,异常信息:{e}")
else:
print("没有异常,else执行")
finally:
print("无论是否发生异常,finally都执行")
捕获指定异常类型
捕获指定异常,有多个except 时,except依次进行捕获,如果捕获到指定异常,后面的except不再进行捕获。except也可以传元组类型,例如 except(异常类型1, 异常类型N)
try:
# result = 10 / 0 # 除零异常
open("aaaaaa.sqsfa", "r") # 文件不存在异常
except (ZeroDivisionError, IndexError) as e: # 捕获指定异常,指定异常不存在,继续向下执行下一个except捕获
print("捕获指定异常")
except Exception as e:
print("捕获所有异常")
else:
print("没有异常")
finally:
print("无论是否发生异常,这部分代码都会执行")
主动抛出异常 raise
try:
raise ZeroDivisionError
except ZeroDivisionError as e:
print("发生异常")
finally:
print("无论是否发生异常,这部分代码都会执行")
自定义异常
# 自定义异常
class MyCustomError(Exception):
def __init__(self, message):
self.message = message
super().__init__(self.message)
# 使用异常
try:
# raise 抛出异常
raise MyCustomError("我是异常信息")
except MyCustomError as e:
print(f"捕获到自定义异常: {e}") # 捕获到自定义异常: 我是异常信息
异常的传递
如果在
try
块中没有捕获到异常,异常会继续向外传播,直到被捕获或到达顶层,这时程序会终止并打印堆栈跟踪(traceback)。
原文地址:https://blog.csdn.net/a1053765496/article/details/140348539
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!