我不明白为什么 traceback.format_exc() 在以下示例中返回“无”:
#!/usr/bin/env python
import sys
import traceback
def my_excepthook(type, value, tb):
print type.__name__
print value
# the problem: why does this return "None"?
print traceback.format_exc(tb) # see http://docs.python.org/library/traceback.html#traceback.format_exc
sys.excepthook = my_excepthook # see http://docs.python.org/library/sys.html#sys.excepthook
# some code to generate a naturalistic exception
a = "text"
b = 5
error = a + b
使用 Python 2.7.1,我得到以下输出:
TypeError
cannot concatenate 'str' and 'int' objects
None
我希望在注释掉 sys.excepthook 行时得到发生的事情,而不是第 3 行的“无”:
Traceback (most recent call last):
File "log-test.py", line 17, in <module>
error = a+b
最佳答案
尝试在 my_excepthook 中这样改变:
print "".join(traceback.format_exception(type, value, tb))
关于python - traceback.format_exc/print_exc 在期望回溯时返回 None,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9675801/