我在我的 Java 应用程序中使用第三方库。这个第三方库在每次应用程序启动时都会引发自定义的未捕获异常。该异常是无害的,仅用于第三方库内部记录的目的。由于未捕获此异常,它会导致我的 Eclipse IDE 切换到调试视角,并在每次启动应用程序时暂停线程执行以通知我该问题。我必须手动告诉 Eclipse 忽略这个并每次都恢复调试。这很烦人。我无法更改第三方库来解决此问题。
有没有办法告诉 Eclipse IDE 忽略特定类型的未捕获异常?
我尝试了“步骤过滤”,但是(我认为)由于自定义未捕获的异常不在堆栈跟踪中,因此它不会从调试器中过滤掉。这是我第一次尝试逐步过滤,因此我可能会错误地使用它。这是堆栈跟踪示例。
Daemon Thread [Thread-13] (Suspended (exception CustomThirdPartyException))
ThreadPoolExecutor$Worker.run() line: not available [local variables unavailable]
Thread.run() line: not available
EDIT:
jluzwick 在禁用 Eclipse 中所有未捕获的异常后使用我们自己的记录器来监视未捕获的异常的工作在技术上可以工作,但它并不理想,如果我们的记录器损坏,我们可能会错过一些东西。
mazaneicha 的解决方案似乎走在正确的轨道上,但我无法让它完全按照我想要的方式工作。这可能是由于我的用户错误造成的。
jluzwick 和 mazaneicha 都有可能解决这个问题,但 Konstantin Komissarchik 给出了“正确”的答案,因为这应该被推回给库的创建者来修复。有时技术解决方案并不正确。
一个旧线程,但我想我会添加一些内容。
至少在 Eclipse Indigo 中:在 Debug Perspective->Breakpoints 视图中:
- 为要暂停的异常(以及可能的子类)指定断点。这是通过单击“添加 Java 异常断点”来完成的。一个由 J 和感叹号组成的图标。
- 右键单击断点并选择“断点属性”
- 转到“过滤”
- 指定要忽略的类或包。这会将它们添加到列表中。请务必取消选中它们以表明它是专有的(不要停在指定位置)
我倾向于使用它,以便我可以将 NullPointerExceptions 指定为通用异常断点,但忽略来自第三方库的包。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)