Java Thread捕获所有异常?

时间:2013-10-09 00:54:35

标签: java eclipse multithreading debugging thread-safety

当我在Eclipse中以调试模式运行我的代码时,我能够找到代码发生故障的位置,但是在委员会中没有显示异常。在调试模式下,我注意到在抛出异常之后,它似乎被运行的线程吞没,并且程序继续运行(或者至少继续运行。程序本身变得无法使用)。有没有办法让线程中的错误更明显?

如果我错误解释了调试器在达到异常时通过代码的路径,我很抱歉。它似乎对我来说它被线程抓住了。无论如何,每当我有线程代码时,我都很难找出错误是什么。

2 个答案:

答案 0 :(得分:3)

使用Eclipse调试器,您可以配置断点,以便在抛出某些指定的Exception时中断。

进行设置:

在调试器的断点标签上,按 J!按钮。这将使您能够添加Java异常断点。您还可以选择挂起引发异常的JVM或线程。

在您指定的Exception被抛出之前,调试器将暂停线程或JVM(所有线程),具体取决于您的选择。此时,您可以开始诊断问题。这不是万无一失的,但它将为您调试问题提供一个很好的起点。

如果您不知道抛出什么异常,可以选择java.lang.Exception。这将暂停任何Exception抛出。

答案 1 :(得分:3)

您可能希望register an UncaughtExceptionHandler使用该线程,您可以在其中执行所需的日志记录。