java - 如何在 Eclipse 调试器中检查 "current"异常?

标签 java eclipse debugging exception watch

有时 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/

相关文章:

java - Java 'final' 关键字是否真的提高了安全性?

c++ - Eclipse CDT 包括前缀为 'C:'

javascript - npm 构建后 Vue 实例方法中的断点

java - 什么是 J9VMInternals,它是如何工作的?

java - 在 Eclipse 中调试 Java 应用程序(Tanuki 服务包装器)

java - Java中的无序对

java - 将 byte[] 加入队列的最有效方法(List BlockingQueue)

java - SWT ComboBoxCellEditor 可编辑

eclipse - j2me 中的 HTTP/1.1 502 代理错误

java - Linux SWT 浏览器 JavaScript.window.close() 方法不起作用