代码之家  ›  专栏  ›  技术社区  ›  Hut8

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

  •  19
  • Hut8  · 技术社区  · 14 年前

    我觉得我错过了一些很简单的东西。我已经将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

    盖特称之为可观察的外部领域org.eclipse.core.databinding.observable.set.WritableSet@4b7361e2”不可用,直到我逐步遍历异常(从而将其传播到堆栈的所有部分),在那里它输出异常的类型、文本(这是我想要的部分)和堆栈跟踪。

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

    4 回复  |  直到 14 年前
        1
  •  30
  •   Michel    14 年前

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

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

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

        2
  •  3
  •   Jaffer Wilson Dilip kumar    8 年前

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

    Here is the image

        3
  •  2
  •   Brian Duff    14 年前

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

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

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

    https://bugs.eclipse.org/bugs/buglist.cgi?quicksearch=exception+breakpoint

        4
  •  0
  •   Shivanand Darur    10 年前

    您可以在“断点”选项卡的“调试”透视图中看到异常的类型。 我附上一张截图供你参考。这里有NullPointerException,它显示在breakpoints选项卡中。 enter image description here