在Python中出现错误转到

时间:2017-08-15 10:50:54

标签: python debugging error-handling

我已经看到了关于这个主题的几个答案 - 其中一些现在(使用Python 3.6)已经过时了 - 而且我仍然不清楚最好的方法。

我希望能够运行一个脚本,如果它遇到错误,它会跳转到暂停的位置,我可以测试任何局部变量的值,看看可能有什么不妥。

在其他语言(例如VBA)中,我可以使用On Error Goto ErrorHandler,然后在错误处理程序中放置一个断点,打印出错误描述和它来自的行号,然后使用Locals或Immediate窗口看看我的变量在那一点上有什么值。

我不想要一大堆try / except语句,也不希望每次都以调试模式运行它。

在我查看问题的时候,是否有一种简单的Pythonesque方式让它暂停?

1 个答案:

答案 0 :(得分:0)

您会发现pdb模块很有用。

  

模块pdb定义了Python的交互式源代码调试器   程式。它支持设置(条件)断点和单个   踩到源线级,检查堆栈帧,源   代码清单,以及上下文中任意Python代码的评估   任何堆栈帧。它还支持事后调试,可以   在程序控制下调用。

pdb对于设置断点和事后调试非常有用。我相信这就是你要找的东西。

再次,来自文档:

  

从正在运行的程序进入调试器的典型用法是   插入

import pdb; pdb.set_trace()
     

在你要打破的位置   调试器。然后,您可以按照此声明逐步执行代码,   并使用continue命令在没有调试器的情况下继续运行。