python - traceback.format_exc/print_exc 在期望回溯时返回 None

标签 python exception-handling

我不明白为什么 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/

相关文章:

Python-修改csv文件

python - 为什么 multiprocessing.Queue 没有 task_done 方法

java - 如果catch抛出异常,我该如何处理?

c# - 什么会导致 throw 重置调用堆栈(我使用的是 "throw",而不是 "throw ex")

error-handling - 如何从grako/TatSu获取简洁的语法错误消息

c# - 如何正确捕获来自 C#'s HttpClient getAsync so the error says more than "发生一个或多个错误的异常?

python - 如何在python中获取/设置逻辑目录路径

python - tkinter Canvas 窗口无法从Powershell打开

python - 将指定文本从索引替换为数组python中的另一个索引

c# - 删除过多的 try-catch block