2

我注意到在 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()

4

1 回答 1

3

那是一个错误。可能会决定应该引发错误,但这绝对是错误的错误。

于 2012-02-23T06:26:32.250 回答