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

Java Eclipse中异常处的断点-如何检查异常对象?,java,eclipse,exception,debugging,Java,Eclipse,Exception,Debugging,我觉得我错过了一些很简单的东西。我已将Eclipse设置为对所有异常进行中断。因此,假设它在AssertationFailedException上中断。调试窗口将显示挂起的线程,并具有以下数据: Thread [Thread-1] (Suspended (exception AssertionFailedException)) ContactManager.addContact(String) line: 93 ContactManager$ContactDataCallb

我觉得我错过了一些很简单的东西。我已将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 线程[Thread-1](挂起(异常断言FailedException)) ContactManager.addContact(字符串)行:93 ContactManager$ContactDataCallback.dispatch(字符串、元素、客户端连接器)行:118 PacketHandler.handle(FractusPacket)行:173 ServerConnection.syncProcess(FractusMessage)行:122 ServerConnection.run()行:248 Thread.run()行:636 但是,我要查找的文本,例如: Getter调用了observable org.eclipse.core.databinding.obbservable.set的外部领域。WritableSet@4b7361e2“,在我单步执行异常(从而将其传播到堆栈的所有位置)之前不可用,它将输出异常类型、文本(这是我想要的部分)和堆栈跟踪


如何检查“AssertationFailedException”(或任何其他异常)以获取构造异常的消息?当然我是在调试方面。

据我所知,这似乎是不可能的,这是一种悲哀。值得一提的是,我使用过的其他IDE(IntelliJ IDEA、Oracle JDeveloper)似乎在这方面做得更好

例如,IntelliJ IDEA在异常断点上有一个选项,用于在遇到异常断点时将表达式记录到控制台。在该表达式中,“this”是抛出的异常,因此您可以只记录“this”,得到如下结果:

Exception 'java.lang.IllegalStateException' occurred in thread 'main' at Silly.doThing(Silly.java:18)
java.lang.IllegalStateException: dead jim

似乎支持这将是对JDT的一个很好的增强。。。我在他们的bug数据库中找不到任何相关的内容:

Eclipse首选项中有一个选项允许检查抛出的异常:

检查
Java->Debug->openpopup when suspended on exception

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


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

您可以在“断点”选项卡的“调试”透视图中看到异常的类型。 我附上了一个截图供你参考。在那里我有NullPointerException,它显示在断点选项卡中。
在调试视图中,单击产生异常的线程


我不敢相信这个功能不存在!我想是的;感谢您检查bug/enhancement数据库。一个没有告诉您发生了什么异常的调试器看起来根本不像一个调试器。太棒了!可能需要重新启动Eclipse,就像我的情况一样。此外,Ctrl+Shift+I在该窗口中也无法正常工作。默认情况下可能未选中它,因为有时会出现许多异常。然而,对于这个答案+1,如果可以的话,我会+5。我花了很多时间才找到这个。OP不是查找异常的类型,而是查找它的消息