python中如何捕获自定义异常

python中如何捕获自定义异常

作者:Joshua Lee发布时间:2026-01-14阅读时长:0 分钟阅读次数:5

用户关注问题

Q
如何定义自定义异常类?

在Python中,怎样编写一个自定义的异常类,以便捕获特定的错误情况?

A

自定义异常类定义方法

自定义异常类通常继承自内置的Exception类。通过定义一个新的类,并继承Exception,可以创建专属于你项目的异常类型。例如:

class MyCustomError(Exception):
    pass

这样就可以在程序中使用这个异常类进行错误标识。

Q
捕获自定义异常的正确方式是什么?

编写代码时,如何捕获并处理自定义的异常,以确保程序能够正常响应这些错误?

A

使用try-except块捕获自定义异常

使用try-except语句块可以捕获自定义异常。将可能抛出异常的代码放入try块内,并在except块中指定捕获自定义异常。例如:

try:
    # 可能抛出MyCustomError的代码
    raise MyCustomError('发生自定义错误')
except MyCustomError as e:
    print(f'捕获到异常:{e}')

这样能够针对自定义异常执行相应的处理逻辑。

Q
自定义异常可以携带信息吗?

是否可以让自定义异常类携带错误信息或者其他数据,方便错误处理时获取相关细节?

A

为自定义异常添加详细信息

可以通过重写__init__方法并调用父类构造函数,为自定义异常携带更多信息。例如:

class MyCustomError(Exception):
    def __init__(self, message, error_code):
        super().__init__(message)
        self.error_code = error_code

try:
    raise MyCustomError('错误详情', 404)
except MyCustomError as e:
    print(f'错误信息:{e}, 错误代码:{e.error_code}')

这样设计可以方便地在异常处理中获取更多有价值的数据。