Python 3には、例外を再発行するためのuseful raise ... from ...
featureがあります。つまり、発生した例外から元の(再発生した)例外をどのように見つけることができますか?ここで私はそれが発生した例外の__cause__
属性にありますPython 3でre-raised例外にアクセスするには?
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)?
BTW: 'from'を使うことは、' TypeError'を非表示にしてそれをunaccesibleにするようにPythonに指示するNone''から例外Exception( "blah")を行うときに最も有用です。 *デフォルトでは、 'TypeError'は既に新しい例外に格納されています(そのため、トレースバックで'上記の例外の処理中に 'が表示される)ので、' raise ... from err'を実行することはほとんど役に立ちません。 – Bakuriu