Я заметил, что в 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()