自学内容网 自学内容网

[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)!