如何让PyCharm在我的异常情况下中断

23

可能是重复问题:
如何在PyCharm中跟踪未处理的异常

我是Python的新手,并且正在尝试使用PyCharm 1.5调试我的第一个Python程序。 我希望调试器在代码发生异常时(仅限于我的代码)停止执行。

目前的情况是:我使用(Ctrl + Shift + F8)对话框来配置调试器,如果我将“全部暂停”= true“所有异常”= true,那么调试器会过于频繁地停止,例如,在PyCharm 1.5.1\helpers\pydev\pydevd.py的某个位置中断,这很烦人,每次都需要跳过。如果我设置其他选项,则调试器即使在我的代码中出现异常也不会停止。

附言:顺便说一句,如果我只是跳过PyCharm 1.5.1\helpers\pydev\pydevd.py中的断点,则执行会继续进行而不会显示错误。所以我不明白为什么它要中断。


2
如果你在这里得不到答案,那么在Pycharm问题跟踪器上提出问题可能是值得的。这看起来可能是一个bug。Pycharm可能不应该在自己的代码中断异常。 - Peter Graham
好的,谢谢建议,如果我找到问题,我会在这里发布。 - Alex Ilyin
当您在任何位置添加调试器断点时,它是否有效? - Nazar Hussain
1个回答

3

区分你自己的异常和来自库的异常的一种方法是让它们派生自一个自定义类,例如,如果你的模块名为Foo,你可以这样写:

class FooException(Exception):
   pass

并且有更具体的异常从中派生:

class MyMathException(FooException):
   # etc.

然后,在PyCharm中,不要启用All Exceptions,而是将FooException添加到要中断的异常列表中。


我同意你的说法,但通常不是我引发异常。 - Alex Ilyin
哦,我现在有点困惑了,你说“当我的代码出现异常时(仅限于我的代码)”。 - UncleZeiv
是的,例如,如果我调用缺失的方法,则异常会在我的代码中发生,但抛出异常的不是我。 - Alex Ilyin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接