Точка останова на исключение в Eclipse - как исследовать объект Exception? - PullRequest
19 голосов
/ 11 августа 2010

Я чувствую, что здесь что-то очень простое.У меня есть Eclipse, настроенный на все исключения.Итак, допустим, что он разбивается на исключение As ДиссертацияFailedException.Окно Debug покажет, что поток приостановлен и имеет следующие данные:

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 ", недоступно до тех пор, пока я не прохожу исключение (таким образом распространяя его по всему стеку), где выводится тип исключения, текст (который является той частью, которую я хочу) и трассировка стека.

Как я могу проверить «AshesisFailedException» (или любое другое исключение), чтобы получить сообщение, с помощью которого было создано исключение?Конечно, я нахожусь в перспективе Отладки.

Ответы [ 4 ]

30 голосов
/ 10 сентября 2010

В настройках Eclipse есть опция, позволяющая проверить выброшенное исключение:

Проверка Java -> Debug -> Open popup when suspended on exception

С этим параметром появится всплывающее окно, позволяющее проверить исключение.

Странно, что эта опция по умолчанию не отмечена, поскольку она очень полезна!

3 голосов
/ 13 февраля 2016

В представлении отладки щелкните поток, создающий исключение.

Here is the image

1 голос
/ 11 августа 2010

Насколько я могу судить, это кажется невозможным, что довольно печально.Что бы это ни стоило, другие 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

0 голосов
/ 04 июля 2014

Вы можете увидеть Тип исключения в перспективе отладки на вкладке точек останова. Я приложил скриншот для вашей справки. Там у меня было NullPointerException, которое было показано на вкладке контрольных точек. enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...