Python语言重新引发异常
示例
有时您想要捕获一个异常只是为了对其进行检查,例如出于记录目的。检查之后,您希望异常像以前一样继续传播。
在这种情况下,只需使用raise不带参数的语句。
try:
5 / 0
except ZeroDivisionError:
print("Got an error")
raise但是请记住,调用者堆栈中更远的某个人仍然可以捕获异常并以某种方式处理它。在这种情况下,完成的输出可能会很麻烦,因为在任何情况下(捕获或未捕获)它都会发生。因此,提出一个不同的异常可能是一个更好的主意,其中包含您对情况的评论以及原始异常:
try:
5 / 0
except ZeroDivisionError as e:
raise ZeroDivisionError("Got an error", e)但这有一个缺点,就是将异常跟踪精确地减少到此范围raise,raise而无参数保留原始异常跟踪。
在Python3中,您可以使用raise-from语法保留原始堆栈:
raise ZeroDivisionError("Got an error") from e
热门推荐
10 儿子立冬祝福语简短独特
11 对当兵的祝福语简短
12 侄儿高考试祝福语简短
13 伴郎红包祝福语朋友简短
14 媳妇生日简短祝福语朋友
15 公司年会祝福语简短最好
16 元旦感恩祝福语简短大全
17 红包祝福语简短10字
18 周六早晨祝福语简短