Eclipse调试器总是阻止ThreadPoolExecutor没有任何明显的异常,为什么?

问题:

我正在从事我常用的Eclipse项目,它是一个J2EE应用程序,由Spring,Hibernate等组成。我正在使用Tomcat 7(没有特别的原因,我不利用任何新功能,我只是想尝试)。每次调试我的应用程序时,都会发现Eclipse调试器已经到达了一个断点,但事实并非如此,实际上它停止在ThreadPoolExecutor的Java源文件上。控制台上没有堆栈跟踪,它只是停止。然后,如果我点击简历,它继续下去,应用程序运行正常。这是调试器窗口中显示的内容:

Daemon Thread ["http-bio-8080"-exec-2] (Suspended (exception RuntimeException)) 
    ThreadPoolExecutor$Worker.run() line: 912   
    TaskThread(Thread).run() line: 619

我真的不能解释这一点,因为我根本没有使用ThreadPoolExecutor。必须是Tomcat,Hibernate或Spring的东西。这很烦人,因为我总是在调试过程中恢复。
任何线索?

回答:

发布的堆栈跟踪指示在守护进程线程中遇到RuntimeException。这通常在运行时未被捕获,除非原始开发人员抓住并处理该异常。
通常,Eclipse中的调试器被配置为暂停在抛出异常的位置执行所有未捕获的异常。请注意,异常可能稍后处理,在堆栈帧中较低,并且可能不会导致线程被终止。这将是观察到的行为的原因。
 配置Eclipse的行为很简单:
转到窗口> 优先> Java的> 调试,然后取消选中暂停执行未捕获的例外

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Eclipse debugger always blocks on ThreadPoolExecutor without any obvious exception, why?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

6 + 2 =