Java 如何从Eclipse中的线程提取stacktrace?

Java 如何从Eclipse中的线程提取stacktrace?,java,eclipse,multithreading,try-catch,Java,Eclipse,Multithreading,Try Catch,我对处理传递给线程池的可运行程序上的错误感到非常困惑 我做的每件事都是照本宣科的(从字面上说,我坚持Goetz的“实践中的并发性”),我没有捕获Eclipse显示给我的任何错误,而且我得到了奇怪的NoClassDefFoundErrors,尽管我的构建路径看起来很好 我试图终止我的本地回购协议,并重新控制它以获得一个新的项目构建,但仍然出现了错误。我的try-Catch和System.out.println都没用。Eclipse有没有办法让我更好地了解错误?还是一种让错误处理程序真正工作的方法

我对处理传递给线程池的可运行程序上的错误感到非常困惑

我做的每件事都是照本宣科的(从字面上说,我坚持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未能正确初始化并损坏了一些东西。谢谢