184

Python で発生した例外の名前を取得するにはどうすればよいですか?

例えば、

try:
    foo = bar
except Exception as exception:
    name_of_exception = ???
    assert name_of_exception == 'NameError'
    print "Failed with exception [%s]" % name_of_exception

たとえば、複数 (またはすべて) の例外をキャッチしていて、例外の名前をエラー メッセージに出力したいと考えています。

4

6 に答える 6

6

これは機能しますが、もっと簡単で直接的な方法が必要だと思われますか?

try:
    foo = bar
except Exception as exception:
    assert repr(exception) == '''NameError("name 'bar' is not defined",)'''
    name = repr(exception).split('(')[0]
    assert name == 'NameError'
于 2013-08-11T20:56:51.003 に答える