14.10 重新抛出最后的异常
最后更新于:2022-04-01 15:40:38
## 问题
You caught an exception in an except block, but now you want to reraise it.
## 解决方案
Simply use the raise statement all by itself. For example:
>>> def example():
... try:
... int('N/A')
... except ValueError:
... print("Didn't work")
... raise
...
>>> example()
Didn't work
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in example
ValueError: invalid literal for int() with base 10: 'N/A'
>>>
## 讨论
This problem typically arises when you need to take some kind of action in response toan exception (e.g., logging, cleanup, etc.), but afterward, you simply want to propagatethe exception along. A very common use might be in catch-all exception handlers:
try:...except Exception as e:
# Process exception information in some way...
# Propagate the exceptionraise