«Ошибка в sys.excepthook» PyQt5.10.1Python 3.6 - PullRequest
0 голосов
/ 05 июня 2018

У меня есть собственный 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

Я не смог найти ни одной решенной темы, касающейся этой конкретной проблемы.

1 Ответ

0 голосов
/ 05 июня 2018

Решено: В методе, который дублирует сообщения stdout и stderr, произошла ошибка в QtTextEdit.После ручной трассировки все теперь работает как положено.

...