我在我的Java应用程序中使用第三方库。该第三方库在每次应用程序启动时抛出一个自定义未捕获异常。该异常对内部仅用于日志记录目的,是无害的。由于这个异常未被捕获,每次启动应用程序时,它会导致我的Eclipse IDE切换到调试视图并挂起线程执行以通知我出现了问题。我必须手动告诉Eclipse忽略这个问题并继续调试。这非常烦人。我不能更改第三方库以解决此问题。
有没有办法告诉Eclipse IDE忽略特定类型的未捕获异常?
我尝试了“步进过滤”,但(我认为)由于自定义未捕获异常不在堆栈跟踪中,因此它没有被从调试器中过滤出来。这是我第一次尝试步进过滤,所以可能使用不正确。以下是一个示例堆栈跟踪。
有没有办法告诉Eclipse IDE忽略特定类型的未捕获异常?
我尝试了“步进过滤”,但(我认为)由于自定义未捕获异常不在堆栈跟踪中,因此它没有被从调试器中过滤出来。这是我第一次尝试步进过滤,所以可能使用不正确。以下是一个示例堆栈跟踪。
Daemon Thread [Thread-13] (Suspended (exception CustomThirdPartyException))
ThreadPoolExecutor$Worker.run() line: not available [local variables unavailable]
Thread.run() line: not available
编辑:
jluzwick提出的方法是使用自己的记录器来监视禁用Eclipse中所有未捕获的异常后发生的异常,这个方法从技术上讲可以实现,但并不理想,如果我们的记录器出了问题,可能会错过一些异常。
mazaneicha的解决方案似乎在正确的轨道上,但我无法使其按照我想要的方式正常工作。可能是我的操作失误导致的。
jluzwick和mazaneicha都提供了此问题的可能解决方案,但Konstantin Komissarchik给出了“正确”的答案,即应该将此问题反馈给库的创建者进行修复。有时候,技术解决方案并不是最合适的。