Java 如何从Eclipse中的线程提取stacktrace?
我对处理传递给线程池的可运行程序上的错误感到非常困惑 我做的每件事都是照本宣科的(从字面上说,我坚持Goetz的“实践中的并发性”),我没有捕获Eclipse显示给我的任何错误,而且我得到了奇怪的NoClassDefFoundErrors,尽管我的构建路径看起来很好 我试图终止我的本地回购协议,并重新控制它以获得一个新的项目构建,但仍然出现了错误。我的try-Catch和System.out.println都没用。Eclipse有没有办法让我更好地了解错误?还是一种让错误处理程序真正工作的方法Java 如何从Eclipse中的线程提取stacktrace?,java,eclipse,multithreading,try-catch,Java,Eclipse,Multithreading,Try Catch,我对处理传递给线程池的可运行程序上的错误感到非常困惑 我做的每件事都是照本宣科的(从字面上说,我坚持Goetz的“实践中的并发性”),我没有捕获Eclipse显示给我的任何错误,而且我得到了奇怪的NoClassDefFoundErrors,尽管我的构建路径看起来很好 我试图终止我的本地回购协议,并重新控制它以获得一个新的项目构建,但仍然出现了错误。我的try-Catch和System.out.println都没用。Eclipse有没有办法让我更好地了解错误?还是一种让错误处理程序真正工作的方法
//ThreadPool and runnable that is failing, even with error captures
MyPriorityThreadPool.execute(new RunWithPriority(priority) {
Throwable thrown = null;
@Override
public void run() {
try {
batch.buildData();
} catch (Exception e) {
thrown = e;
}
finally {
if (thrown != null) {
thrown.printStackTrace();
}
}
}
});
}
我不太清楚您试图实现什么,但您没有捕获代码中的
NoClassDefFoundError
的原因是您捕获的是异常
,而不是可丢弃的
或错误
Exception
比Error
更具体,而不是NoClassDefFoundError
继承的,因此NoClassDefFoundError
不会被您的catch
表达式捕获。我认为这是有效的。。。在我将类型更改为Exception之后,它打印了堆栈跟踪。至于NoClassDefFoundError,结果是一个singleton未能正确初始化并损坏了一些东西。谢谢