在python异常中获取回溯

时间:2017-12-03 13:33:45

标签: python

我正在尝试使用traceback将异常传递给我的main函数,但它没有按预期工作。

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

1 个答案:

答案 0 :(得分:2)

traceback是模块的名称,尝试使用它的方法,比如traceback.print_stack(),它会打印出堆栈跟踪,就像你没有发现错误时一样。

点击此处了解详情:traceback doc

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