2

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

如果我误解了调试器在遇到异常时通过代码所采用的路径,我深表歉意。它看来,它被线程抓住了。无论如何,每当我编写线程代码时,我都很难找出错误所在。

4

2 回答 2

3

您可能希望向线程注册一个 UncaughtExceptionHandler,您可以在其中执行所需的日志记录。

于 2013-10-09T12:54:40.220 回答
3

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

要进行此设置:

在调试器的断点选项卡上,按J!按钮。这将使您能够添加 Java 异常断点。您还可以选择暂停抛出异常的 JVM 或线程。

就在您指定Exception的被抛出之前,调试器将根据您的选择暂停线程或 JVM(所有线程) 。此时,您可以开始诊断问题。这不是万无一失的,但它会给你一个很好的起点来调试你的问题。

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

于 2013-10-09T01:03:51.807 回答