有时 Eclipse 调试器会在当前指令指针位于方法末尾的异常处停止。调试 View 此时显示“线程...(已暂停(异常...))”
为什么它不在异常抛出处停止?
如何检查这些异常?要查看它们的消息和堆栈跟踪?
最佳答案
它不会停止,因为当 Java 中抛出异常时,它会一直沿着堆栈跟踪向上导航,试图找到可能捕获异常的内容。 Eclipse 仅在 JVM 到达堆栈跟踪中的最后一个元素时停止线程,因此异常进入“未处理”领域。目前,我还没有在 Eclipse 中找到任何有关如何直接从中获取堆栈跟踪的具体信息。您永远不会在这里引用异常。您可以使用 J! 来使用异常断点。 “断点” View 中的图标可使其在引发某种类型的异常时停止,这将帮助您获得所需的结果。
我建议您添加自定义 UncaughtExceptionHandler
这将处理像这样的未捕获的异常。例如:
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
public void uncaughtException(Thread t, Throwable e) {
// Replace the following line with your own handling code
e.printStackTrace();
ErrorHelper.showDetailError(e);
}
});
关于java - 如何在 Eclipse 调试器中检查 "current"异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14650394/