Как получить имя исключения, которое было поймано в 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
например, я ловлю несколько (или все) исключений и хочу напечатать имя исключения в сообщении об ошибке.
2 ответов:
вот два разных способа получить имя исключения:
type(exception).__name__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