在Python 3中,有一個useful raise ... from ...
feature來重新引發異常。也就是說,你如何從引發異常中找到原始(/重新提出的)異常?這裏有一個(傻),例如有意見來證明什麼,我mean--如何訪問Python 3中重新產生的異常?
def some_func():
try:
None() # TypeError: 'NoneType' object is not callable
except as err:
raise Exception("blah") from err
try:
some_func()
except as err:
# how can I access the original exception (TypeError)?
順便說一句:使用'from'主要用於從'None'引發異常(「blah」),它告訴python *隱藏* TypeError並使其不可訪問。 *默認情況下,TypeError已經存儲在新的異常中(這就是爲什麼你會在回溯過程中處理上述異常等待消息的時候),所以'raise ... from err'幾乎是沒有用的。 – Bakuriu