Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中打印异常对象的堆栈跟踪?_Python_Exception - Fatal编程技术网

如何在Python中打印异常对象的堆栈跟踪?

如何在Python中打印异常对象的堆栈跟踪?,python,exception,Python,Exception,如何在Python中打印异常对象的堆栈跟踪 请注意,问题不是关于打印最后一个异常的堆栈跟踪。异常对象可能在过去某个遥远的时间点保存。这有点不方便,但您可以使用。给定异常ex: traceback.print_exception(type(ex), ex, ex.__traceback__) 例如: import traceback try: 1/0 except Exception as ex: traceback.print_exception(type(ex), ex,

如何在Python中打印异常对象的堆栈跟踪


请注意,问题不是关于打印最后一个异常的堆栈跟踪。异常对象可能在过去某个遥远的时间点保存。

这有点不方便,但您可以使用。给定异常
ex

traceback.print_exception(type(ex), ex, ex.__traceback__)
例如:

import traceback

try:
    1/0
except Exception as ex:
    traceback.print_exception(type(ex), ex, ex.__traceback__)

# output:
# Traceback (most recent call last):
#   File "untitled.py", line 4, in <module>
#     1/0
# ZeroDivisionError: division by zero
导入回溯
尝试:
1/0
例外情况除外,例如:
回溯。打印异常(类型(ex)、ex、ex.uu回溯)
#输出:
#回溯(最近一次呼叫最后一次):
#文件“untitled.py”,第4行,在
#     1/0
#ZeroDivision错误:被零除

您可以手动迭代
\uuu traceback\uuu
属性以打印行和文件:

def function():
    raise ValueError("flfkl")

try:
    function()
except Exception as e:
    traceback = e.__traceback__
    while traceback:
        print("{}: {}".format(traceback.tb_frame.f_code.co_filename,traceback.tb_lineno))
        traceback = traceback.tb_next

类似:有点不方便为什么?看起来没问题me@Jean-Françoisfare嗯,真的没有理由需要向该函数传递3个参数。如果存在像
print\u exception(ex)
这样的函数,那就更好了。其他有用的函数是
print\u exc()
,它可以从
sys.info
获取异常信息