У меня есть собственный sys.excepthook в моем main.py:
def application_exception_hook(type_, value, tb):
lines = format_exception(type_, value, tb)
for line in lines:
print(line)
sys.excepthook = sys._excepthook
sys.exit(1)
sys._excepthook = sys.excepthook
sys.excepthook = application_exception_hook
В случае необработанного исключения консольный вывод:
Traceback (most recent call last):
Error in sys.excepthook:
Traceback (most recent call last):
Original exception was:
Traceback (most recent call last):
Замена ...
for line in lines:
print(line)
... с ...
print(lines)
... дает мне такой вывод:
['Traceback (most recent call last):\n', ' File "D:\\...\\framework.py", line 144, in openNesting\n foo = 123 / 0\n', 'ZeroDivisionError: division by zero\n']Error in sys.excepthook:
Traceback (most recent call last):
Original exception was:
Traceback (most recent call last):
Итак, в обоих случаях есть "«Ошибка в sys.excepthook», тогда как в первом случае ошибка уже появляется перед распечаткой всех интересных атрибутов.Я хотел бы знать, что может вызвать «Ошибка в sys.excepthook» и как я могу получить ТОЛЬКО такой вывод:
Traceback (most recent call last):
File "D:\\...\\framework.py", line 144, in openNesting
foo = 123 / 0
ZeroDivisionError: division by zero
Я не смог найти ни одной решенной темы, касающейся этой конкретной проблемы.