Eclipse 中异常处的断点 - 如何检查异常对象?

2022-09-02 09:25:32

我觉得我在这里错过了一些非常简单的东西。我设置了 Eclipse 来打破所有异常。所以,假设它在 AssertationFailedException 上中断。“调试”窗口将显示该线程已挂起,并具有以下数据:

Thread [Thread-1] (Suspended (exception AssertionFailedException)) 
    ContactManager.addContact(String) line: 93  
    ContactManager$ContactDataCallback.dispatch(String, Element, ClientConnector) line: 118 
    PacketHandler.handle(FractusPacket) line: 173   
    ServerConnection.syncProcess(FractusMessage) line: 122  
    ServerConnection.run() line: 248    
    Thread.run() line: 636

但是,我正在寻找的文本(例如:“Getter 调用于可观察org.eclipse.core.databinding.observable.set.WritableSet@4b7361e2领域之外”)不可用,直到我逐步执行异常(从而将其一直向上传播到堆栈中),其中它输出异常的类型、文本(这是我想要的部分)和堆栈跟踪。

如何检查“AssertationFailedException”(或任何其他异常)以获取构造异常的消息?当然,我是从调试的角度来看的。


答案 1

Eclipse 首选项中有一个选项,允许检查引发的异常:

检查Java -> Debug -> Open popup when suspended on exception

使用此选项,将有一个弹出窗口,允许检查异常。

奇怪的是,默认情况下不选中此选项,因为它非常有用!


答案 2

在调试视图中,单击产生异常的线程。

Here is the image