Python捕获任何异常,并使用变量值打印或记录回溯
当我用sys.excepthook捕捉到意外错误时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
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