如何在Python中打印异常对象的堆栈跟踪?
如何在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,
请注意,问题不是关于打印最后一个异常的堆栈跟踪。异常对象可能在过去某个遥远的时间点保存。这有点不方便,但您可以使用。给定异常
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
获取异常信息