python: получить полную информацию об исключении
есть такой код:
print(func(123))
при попытке выполнить получаю ошибку:
Traceback (most recent call last):
File "debug.py", line 1, in <module>
print(func(123))
^^^^
NameError: name 'func' is not defined
Если ловлю исключение:
try:
print(func(123))
except BaseException as e:
print(e)
то получаю лишь такую информацию:
name 'func' is not defined
А можно ли через исключения получить полную информацию, в том числе информацию о файле в котором возникло исключение и номер строки на которой произошло исключение?
Ответы (2 шт):
Автор решения: CrazyElf
→ Ссылка
Стандартный модуль traceback позволяет получить такую информацию. Можно напечатать, можно получить в виде строк всё, что нужно.
Примеры там сильно отличаются для разных версий питона, поэтому код не даю.
Автор решения: wchistow
→ Ссылка
Есть функция sys.exc_info:
>>> import sys
>>> try:
... 1/0
... except:
... print(sys.exc_info())
...
(<class 'ZeroDivisionError'>, ZeroDivisionError('division by zero'), <traceback object at 0x...>)
>>>
Подробнее в документации.