Не могу переопределить 'sys.excepthook' - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь переопределить sys.excepthook обработку исключений.Однако это просто не работает.

Это код, который я выполняю.

from sys import excepthook

excepthook = lambda type, exception, traceback : print('foo')

raise Exception('bar')

Следующий код вызывает мой переопределенный метод:

from sys import excepthook

excepthook = lambda type, exception, traceback : print('foo')

try:
    raise Exception('bar')
except Exception as e:
    excepthook(Exception, e, e._traceback_)

Этот кодбесполезен из-за того, что sys.excepthook должен перехватывать необработанные исключения.

Я знаю, что у многих людей возникают такие проблемы, как у меня, однако ни одна из проблем не помогла мне решить мою проблему.

почему-не работает-sys-exchook

добавление-функции-в-sys-exchook

sys-exchohook-vsисключение

Спасибо.

1 Ответ

0 голосов
/ 04 июня 2019

Понял.

Проблема в импорте sys модуля.

import sys

sys.excepthook = lambda type, exception, traceback : print('foo')

А не это:

from sys import excepthook

Кажется, что python не знает о функции excepthook из sys, поэтому он объявляет новую переменную с именем excepthook. Вот почему это не работает, как указано в документации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...