在python异常中获取回溯

在python异常中获取回溯,python,Python,我试图通过回溯将异常传递给我的主函数,但它并没有按预期工作 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]

我试图通过回溯将异常传递给我的主函数,但它并没有按预期工作

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\u stack()
,它将打印stacktrace,就像您在未捕获错误时看到的那样

更多信息请参见此处:


您可以使用
traceback.extract_stack()
获取堆栈的元组列表,这些元组是您导入的traceback,然后在except子句中重新分配的。你可以在这篇文章中找到你所需要的:可能的副本