Как получить имя исключения, которое было поймано в Python?



Как я могу получить имя исключения в Python?



например,



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


например, я ловлю несколько (или все) исключений и хочу напечатать имя исключения в сообщении об ошибке.

585   2  

2 ответов:

вот два разных способа получить имя исключения:

  1. type(exception).__name__
  2. exception.__class__.__name__

например,

try:
    foo = bar
except Exception as exception:
    assert type(exception).__name__ == 'NameError'
    assert exception.__class__.__name__ == 'NameError'

это работает, но кажется, что там должен быть более простой, более прямой путь?

try:
    foo = bar
except Exception as exception:
    assert repr(exception) == '''NameError("name 'bar' is not defined",)'''
    name = repr(exception).split('(')[0]
    assert name == 'NameError'

Comments

    Ничего не найдено.