如果我有异常类的继承层次结构,并且在 try 块中,如果我想尝试在更一般的异常之前处理更具体的(派生)异常,我是否只是将派生类的 except 语句放在上面基类?

这是我要做的吗?

class MyException(BaseException):
    pass

class AnotherException(MyException):
    pass

try:
    raise AnotherException()
except AnotherException:
    print('Caught YetAnotherException!')
except MyException:
    print('Caught MyException!')

print('Done.')

我已经试过了,它有效,但我很惊讶我找不到任何关于此的文档。

最佳答案

查看 Python 语言引用中的 try statement 文档。相关位是:

10-08 12:40