Java线程捕获所有异常?

标签 java eclipse multithreading debugging thread-safety

当我在 Eclipse 中以 Debug模式运行我的代码时,我能够找到代码崩溃的地方,但委员会没有显示异常。在 Debug模式下,我注意到抛出异常后,它似乎被运行它的线程吞没了,程序继续运行(或者至少继续运行。程序本身变得不可用)。有什么方法可以让线程中抛出的错误更明显吗?

如果我误解了调试器在遇到异常时通过代码所采用的路径,我深表歉意。在我看来,它似乎被线程捕获了。不管怎样,每当我有线程代码时,我都很难找出错误是什么。

最佳答案

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

要设置它:

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

就在您指定的Exception 被抛出之前,调试器将根据您的选择挂起线程或JVM(所有线程)。此时,您可以开始诊断问题。它并非万无一失,但它会为您调试问题提供一个极好的起点。

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

关于Java线程捕获所有异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19261157/

相关文章:

linux - 编辑 rc.lua 时的 Tabcompletion 和 docview

c# - 线程安全和通用数组列表?

java - JAVA中使用信号量控制线程访问

java - 如何将在线可用的 javadoc 添加到 Netbeans 中下载的库?

Java 泛型接口(interface)

java - 运行 web 服务 eclipse - apache tomcat 8

android - 如何在 Eclipse 中运行 Android 应用程序?

java - 返回到发出重定向请求的页面

java - 使用远程调试运行 docker-compose。 Intellij,Java 11

java - 两个线程如何进入两个持有同一对象锁的同步块(synchronized block)