我正在尝试通过回溯将异常传递给我的主要功能,但其无法正常工作。

import sys
import traceback

def test_function():
    return 0/0

def task1():
    try:
        a = 1
        test_function()
    except Exception as e:
        print e
        traceback = sys.exc_info()[2]
        raise Exception(), 'Error message', traceback

def main():
    try:
        task1()
    except Exception, e:
        print e

print 'start'
main()
print 'end'


这是我的结果:

start
integer division or modulo by zero
instance exception may not have a separate value
end

最佳答案

traceback是模块的名称,请尝试使用其方法,例如traceback.print_stack(),它将像未发现错误时看到的那样打印出堆栈跟踪。

在此处查看更多信息:traceback doc

您可以使用traceback.extract_stack()获取堆栈的元组列表

关于python - 在python异常中获取回溯,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47618901/

10-12 23:12