Отслеживание Python 3 завершается неудачно, когда нет активных исключений - PullRequest
1 голос
/ 23 февраля 2012

Я заметил, что в Python2, когда я пытаюсь сбросить трассировку стека исключений, но нет активного исключения, он печатает None:

Python 2.7.2+ (default, Oct  4 2011, 20:06:09) 
>>> import traceback
>>> traceback.print_exc()
None

Но Python3 дает сбой из-за внутренней проблемы:

Python 3.2.2 (default, Sep  5 2011, 21:17:14) 
>>> import traceback
>>> traceback.print_exc()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.2/traceback.py", line 259, in print_exc
    print_exception(etype, value, tb, limit, file, chain)
  File "/usr/lib/python3.2/traceback.py", line 155, in print_exception
    for value, tb in values:
  File "/usr/lib/python3.2/traceback.py", line 122, in _iter_chain
    cause = exc.__cause__
AttributeError: 'NoneType' object has no attribute '__cause__'

Это ошибка в Python, или я должен всегда проверять какое-то условие перед вызовом print_exc()

1 Ответ

3 голосов
/ 23 февраля 2012

Это ошибка . Может быть решено, что возникнет ошибка, но это определенно неправильная ошибка.

...