这是我在使用Eclipse进行调试时遇到的一个小麻烦。如果选中了“挂起异常上的执行”,调试器通常会在抛出异常的位置挂起线程。但是,事件调度线程上的异常会导致它在EventDispatchThread.run()的最后一行暂停。在我恢复线程以允许堆栈跟踪打印到控制台之前,没有关于异常是什么或导致异常的有用信息。
在Eclipse中调试以下代码以演示:
public class SuspendOnUncaughtTest {
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
((Object) null).toString();
}
});
}
}
下面是抛出异常后的样子:
编辑10/21/2011:和调试器没有什么奇怪的,只是在中捕获并重新抛出了异常我认为没有办法告诉Eclipse“对将要捕获并可能被重新抛出的异常挂起执行”。太可惜了。
发布于 2011-10-25 01:02:26
据我所知,这是没有解决办法的。Eclipse的行为是正确的,正确的行为只是恼人。
发布于 2011-10-19 19:45:22
在NeteBeans中看到类似的结果,但是Thread.setDefaultUncaughtExceptionHandler()
在这个上下文中可能很有用。有一个例子,这里。
发布于 2014-01-28 18:14:35
我遇到了这个问题,发现了一些对我有用的东西。
我正在使用开普勒,并能够通过进入调试器透视图的断点选项卡并取消选中EventDispatchThread上的复选框来停止此操作。
https://stackoverflow.com/questions/7825376
复制相似问题