如何在Eclipse中忽略特定类型的未捕获异常?

Tan*_*ir1 10 java eclipse uncaught-exception

我在我的Java应用程序中使用第三方库.此第三方库在每次应用程序启动时都会抛出自定义未捕获的异常.该例外是无害的,仅用于内部第三方库的日志记录.由于未捕获此异常,因此每次启动应用程序时都会导致Eclipse IDE切换到调试透视图并挂起线程执行,以通知我该问题.我必须手动告诉Eclipse忽略这一点,并且每次都要恢复调试.这非常烦人.我无法更改第三方库以解决此问题.

有没有办法告诉Eclipse IDE忽略特定类型的未捕获异常?

我试过"Step Filtering"但是(我认为)因为自定义未捕获异常不在堆栈跟踪中,所以它不会从调试器中过滤掉.这是我第一次涉足Step Filtering,所以我可能会错误地使用它.这是一个示例堆栈跟踪.

Daemon Thread [Thread-13] (Suspended (exception CustomThirdPartyException)) 
    ThreadPoolExecutor$Worker.run() line: not available [local variables unavailable]   
    Thread.run() line: not available
Run Code Online (Sandbox Code Playgroud)

编辑:

在禁用Eclipse中所有未捕获的异常后,jluzwick使用我们自己的记录器来监视未捕获的异常可能在技术上有效,但它并不理想,如果我们的记录器坏了,我们可能会错过任何东西.

mazaneicha的解决方案似乎在正确的轨道上,但我无法让它按照我想要的方式工作.这可能是由于我的用户错误.

jluzwick和mazaneicha都有可能解决这个问题,但Konstantin Komissarchik有"正确"的答案,因为这应该被推回到图书馆的创作者来修复.有时技术解决方案不正确.

小智 13

一个旧线程,但我想我会添加一点.

至少Eclipse Indigo:在Debug Perspective-> Breakpoints视图中:

  1. 为要暂停的Exceptions(以及可能的子类)指定断点.这可以通过单击"添加Java异常断点"来完成.一个J和感叹号的图标.
  2. 右键单击断点并选择"断点属性"
  3. 转到"过滤"
  4. 指定要忽略的类或包.这会将它们添加到列表中.请务必取消选中它们以描述它是独占的(不要在指定位置停止)

我倾向于使用它,以便我可以将NullPointerExceptions指定为一般异常断点,但忽略来自第三方库的包.