Python捕获任何异常,并使用变量值打印或记录回溯

Python捕获任何异常,并使用变量值打印或记录回溯,python,Python,当我用sys.excepthook捕捉到意外错误时 import sys import traceback def handleException(excType, excValue, trace): print 'error' traceback.print_exception(excType, excValue, trace) sys.excepthook = handleException h = 1 k = 0 print h/k 这是我得到的输出 error

当我用sys.excepthook捕捉到意外错误时

import sys
import traceback

def handleException(excType, excValue, trace):
    print 'error'
    traceback.print_exception(excType, excValue, trace)

sys.excepthook = handleException

h = 1
k = 0

print h/k
这是我得到的输出

error
Traceback (most recent call last):
   File "test.py", line 13, in <module>
      print h/k
ZeroDivisionError: integer division or modulo by zero

通过查看
cgib.py
的源代码,您应该能够使用以下内容:

import sys
import traceback
import cgitb

def handleException(excType, excValue, trace):
    print 'error'
    cgitb.Hook(format="text")(excType, excValue, trace)

sys.excepthook = handleException

h = 1
k = 0

print h/k

作为最佳实践,您应该避免在输出或异常中添加dubug信息,有一些工具可以通过一行代码帮助您实现这一点。下面是一个例子:

请看一些相关的软件包。对于简单的用法,您可以选择(
pip-install-traceback with-variables
),这是它的明信片

或者尝试,或者

import sys
import traceback
import cgitb

def handleException(excType, excValue, trace):
    print 'error'
    cgitb.Hook(format="text")(excType, excValue, trace)

sys.excepthook = handleException

h = 1
k = 0

print h/k