【问题标题】:Breakpoint at exception in Eclipse - how to examine Exception object?Eclipse 中的异常断点 - 如何检查异常对象?
【发布时间】:2011-03-28 02:15:12
【问题描述】:

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

线程 [Thread-1](暂停(异常 AssertionFailedException))
    ContactManager.addContact(String) 行:93
    ContactManager$ContactDataCallback.dispatch(String, Element, ClientConnector) 行:118
    PacketHandler.handle(FractusPacket) 行:173
    ServerConnection.syncProcess(FractusMessage) 行:122
    ServerConnection.run() 行:248
    Thread.run() 行:636

但是,我要查找的文本,例如: “Getter called outside realm of observable org.eclipse.core.databinding.observable.set.WritableSet@4b7361e2”,直到我单步执行异常(因此将其一直向上传播)输出类型异常、文本(这是我想要的部分)和堆栈跟踪。

如何检查“AssertationFailedException”(或任何其他异常)以获取构造异常的消息?当然,我是在 Debug 透视图中。

【问题讨论】:

    标签: java eclipse exception debugging


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您可以在断点选项卡的调试透视图中查看异常的类型。 我附上了截图供您参考。那里我有 NullPointerException,它显示在断点选项卡中。

      【讨论】:

      • OP 不是在寻找异常的类型,而是在寻找它的消息
      【解决方案3】:

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

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

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

      奇怪的是这个选项默认没有勾选,因为它非常有用!

      【讨论】:

      • 太棒了!在我的情况下,可能需要重新启动 Eclipse。此外 Ctrl+Shift+I 在此窗口中无法按承诺工作。
      • 默认情况下可能不会检查它,因为您有时会遇到 很多 异常。但是,对此答案+1,如果可以的话,我会+5。我花了很多时间才找到这个。
      【解决方案4】:

      据我所知,这似乎是不可能的,这有点令人难过。就其价值而言,我使用过的其他 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 的一个很好的增强...我在他们的错误数据库中找不到任何看起来相关的内容:https://bugs.eclipse.org/bugs/buglist.cgi?quicksearch=exception+breakpoint

      【讨论】:

      • 我不敢相信这个功能不存在!我认为确实如此;感谢您检查错误/增强数据库。
      • 一个不告诉你你遇到了什么异常的调试器看起来根本不像一个调试器。
      猜你喜欢
      • 1970-01-01
      • 2014-10-31
      • 1970-01-01
      • 2011-05-19
      • 2023-04-07
      • 2015-05-03
      • 2018-05-29
      • 2015-07-09
      • 1970-01-01
      相关资源
      最近更新 更多