如何从Eclipse中的线程中提取堆栈跟踪?

时间:2014-06-30 15:35:12

标签: java eclipse multithreading try-catch

我对处理传递给线程池的runnables上的错误非常困惑。

我正在按照这本书做的一切(字面意思是,我坚持Goetz的“实践中的并发”)并且我没有捕捉到Eclipse向我展示的任何错误,而且即使我得到了奇怪的NoClassDefFoundErrors buildpath看起来很好。

Weird NoClassDefFoundError even though my buildpath is fine

我试图杀死我的本地仓库并重新克隆它以获得新的项目构建,但仍然得到错误。我的尝试捕获或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();
                                    }
                                }
                        }
                    });
                }

1 个答案:

答案 0 :(得分:2)

我不太确定您要完成的工作,但您在代码中没有抓住NoClassDefFoundError的原因是您正在抓住{{ 1}}而不是ExceptionThrowableErrorException更具体, Error继承的内容,因此NoClassDefFoundError未被NoClassDefFoundError抓住表达。