打破pydev中的异常

Posted

技术标签:

【中文标题】打破pydev中的异常【英文标题】:Break on exception in pydev 【发布时间】:2010-10-02 02:48:43 【问题描述】:

是否可以让 pydev 调试器因异常而中断?

【问题讨论】:

Run->Pydev Manage Python Exception Breakpoints UI 有一点特殊性,即该选项同时出现在 Python 透视图和 Debug 透视图的 Run 菜单中,但通常(总是?)在蟒蛇之一。我不知道为什么会这样,但在任何情况下,都应该在 Debug 透视图中启用该选项。 【参考方案1】:

这是 PyDev 作者在 Run > Manage Python Exception Breakpoints 下添加的

【讨论】:

请注意,这是在 PyDev 2.2 上添加的 我发现我必须将 Eclipse 放到调试视图中才能激活菜单选项。 谢谢你和 ***!几年后它再次有用!【参考方案2】:

关于任何异常?

如果我没记错的话,在 PyDev(在 Eclipse 中)这是可能的。


编辑: 再次检查,检查pdb documentation,找不到设置异常断点的方法。

如果我可以建议一个非常粗略的解决方法,但如果你必须,你可以从 try-except 块中调用你的程序,在那里设置一个断点,一旦它在 except 块中中断,就上堆栈并调试您的错误。

另一个编辑这个功能has been added to PyDev

【讨论】:

是的,有任何例外。我找不到任何关于如何在网上进行操作的参考。只有 2006 年的邮件列表和博客文章表明这​​是不可能的。 这个变通办法很丑陋,但很有效,所以你有我的投票权。现在我想知道我们可以在哪里提出这个功能请求。 请注意,这个答案不再是正确的答案(它现在已经过时了,因为它已被添加到 PyDev:运行 > 管理 Python 异常断点)。【参考方案3】:

我尝试了大的 try-except 技巧,但它没有按预期工作,你得到了它中断的堆栈,即在 except: 块中,你无法到达异常所在的堆栈从那里升起,那是没有意义的。

更新:pydev 从 1.6.0 开始确实具有异常中断功能,但还没有 UI,需要一些代码: https://sourceforge.net/tracker/?func=detail&aid=2970886&group_id=85796&atid=577332

【讨论】:

"刚刚做了一个初始实现(暂时没有 UI)。使用它的 api 是:import pydevd pydevd.set_pm_excepthook() 或传递异常。即:set_pm_excepthook((IndexError, AssertionError))这应该在调试器中启动时工作。"

以上是关于打破pydev中的异常的主要内容,如果未能解决你的问题,请参考以下文章

我怎样才能让 QtCreator 打破异常?

如何打破 Silverlight 中未处理的异常

需要 C# 打破 Selenium 第一次机会异常

使用 Selenium 在 Chrome 中打破异常

打破异常'_InternalLinkedHashMap '不是'Map'类型的子类型 “

Tomcat如何打破双亲委托机制?