用pdb处理未捕获的异常?

我想我以前问过这个问题,但是有办法设置
python处理PDB的无人例外?我知道设置
sys.except_hook到称为PDB的东西,但这通常是完成的
在程序的外部级别,到钩获取时
呼叫,例外已经将堆栈解开为最外面
等级.我的情况是我运行多个小时或多天的计算
最终由于一些意外的输入而崩溃,我想
当例外情况下,在最内向的调试器中闯入调试器
遇到了,因此我可以使用PDB命令和简历修复错误
加工.当然,这假定为Python的某些语义
例外(即处理一个涉及扫描堆栈两次,一次
寻找处理程序,然后再次真正放松堆栈),我
不确定是否真的这样做.我确实知道LISP有一个
但是,这样的要求;所以也许有希望.

# 回答1


保罗·鲁宾(Paul Rubin
...
为什么不使用追溯您可以向您展示在哪里更改代码
在那个点附近添加了一个呼叫的异常处理程序
调试器?
# 回答2


R. Bernstein Schrieb:
...
为什么不使用追溯您可以向您展示在哪里更改代码
在那个点附近添加了一个呼叫的异常处理程序
调试器?
因为他想直接解决这个问题,然后继续,
而不是损失数小时甚至数天的计算.
但是,这是不可能的.
diez
# 回答3


保罗·鲁宾·施里布(Paul Rubin Schrieb):
这项工作会(尽管它可能会减慢程序)吗?

导入系统,PDB
DEF TRACEFUNC(帧,事件,ARG):
如果事件=="异常":
pdb.set_trace()
返回TraceFunc
sys.settrace(TraceFunc)
DEF测试(ARG):
如果arg 20:
提高价值ERROR(ARG)
返回测试(arg+1)
测试(0)

托马斯
# 回答4


" Diez B. Roggisch" ...为什么不使用追溯您可以向您展示在哪里更改该点的代码,以添加一个称为ThedeBugger的异常处理程序?

因为他想直接解决这个问题,然后
继续,而不是损失数小时甚至数天的计算.
然后主动添加异常处理程序;-)

# 回答5


2008/9/10 Paul Rubin <" http://phr.cx"@nospam.invalid>:
http://code.activestate.com/recipes/65287/
- -
干杯,
Simon B. si@brunningonline.net http://www.brunningonline.net/simon/blog/
gtalk:Simon.Brunning | MSN:small_values | Yahoo:SmallValues | Twitter:Brunns

标签: python

添加新评论