Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java线程捕获所有异常?_Java_Eclipse_Multithreading_Debugging_Thread Safety - Fatal编程技术网

Java线程捕获所有异常?

Java线程捕获所有异常?,java,eclipse,multithreading,debugging,thread-safety,Java,Eclipse,Multithreading,Debugging,Thread Safety,当我在Eclipse中以调试模式运行代码时,我能够找到代码出现故障的地方,但是异常没有显示在屏幕上。在调试模式下,我注意到在抛出异常之后,它似乎被运行它的线程吞没了,程序继续运行(或者至少继续运行。程序本身变得不可用)。有没有办法让线程中抛出的错误更明显 如果我误解了调试器在到达异常时通过代码的路径,我表示歉意。在我看来,它似乎被线缠住了。不管怎样,只要我有线程化代码,我就很难找出错误是什么 使用Eclipse调试器,您可以将断点配置为在抛出某些指定的异常时中断 要设置此选项,请执行以下操作:

当我在Eclipse中以调试模式运行代码时,我能够找到代码出现故障的地方,但是异常没有显示在屏幕上。在调试模式下,我注意到在抛出异常之后,它似乎被运行它的线程吞没了,程序继续运行(或者至少继续运行。程序本身变得不可用)。有没有办法让线程中抛出的错误更明显


如果我误解了调试器在到达异常时通过代码的路径,我表示歉意。在我看来,它似乎被线缠住了。不管怎样,只要我有线程化代码,我就很难找出错误是什么

使用Eclipse调试器,您可以将断点配置为在抛出某些指定的
异常时中断

要设置此选项,请执行以下操作:

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

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


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

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

始终可以写入日志文件。在大多数IDE中调试多线程应用程序可能很困难。虽然问题是关于错误可见性,但我有时需要使线程健壮并按需重新启动。我将创建一个
Runnable
,其中
run()。当然,我将其提交给
执行器
,而不是以旧式方式管理线程。