我相信你发现自己陷入了这种境地,我想这是没有办法的。
假设您运行了一些引发异常的python代码,那么您希望对此进行研究,但是在执行此操作时意外地引发了另一个异常。如果现在尝试事后调试,您将看到后一个异常的回溯。我的问题是,前者会永远消失吗?在
示例:def my_buggy_function(x):
y = x + 1
raise RuntimeError
第一步:我提出一个错误,我想调试它
^{pr2}$
步骤2:我试图调试错误,但意外地引发了另一个错误(在本例中,我没有加载pdb)pdb.pm() #Oops..
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
/home/user/ in ()
----> 1 pdb.pm()
NameError: name 'pdb' is not defined
import pdb
第三步:现在回溯给我最后一个错误,倒数第二个错误就丢失了。在pdb.traceback.print_last()
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/IPython/core/interactiveshell.py", line 2538, in run_code
exec code_obj in self.user_global_ns, self.user_ns
File "", line 1, in
pdb.pm()
NameError: name 'pdb' is not defined
如果我想在倒数第二个回溯中访问y,它会永远丢失吗?在
注意:我正在使用ipython/ipdb以防有问题