2009-02-25 2 views
20

Бытовая ситуация для отладки для разработчиков Java - это то, в чем генерируется Исключение, а затем вам нужно вставить в отладчик, чтобы узнать, что его выбрасывает. Обычно вы пытаетесь настроить некоторые точки останова до того, как будет выбрано исключение, и надеемся, что вы сможете определить ситуацию, которая ведет к этому исключению.Устранение исключений как выражение при отладке Java в Eclipse IDE

В Eclipse точка останова может иметь выражение, определяемое там, где оно запускается только тогда, когда, например, переменная x равна значению y. Мой вопрос в том, можно ли определить какое-то глобальное выражение, где, как только генерируется исключение, оно улавливается отладчиком, позволяя программисту немедленно проверить все переменные? В идеале вы бы еще не ударили по блоку catch, Eclipse поймал бы исключение, которое будет поднято, и прекратит выполнение без изменения содержимого стека.

Возможно ли это или ограничено JVM?

ответ

35

Другой пример: Eclipse Tip: Breakpoint on Exception

Eclipse, позволяют установить точки останова на основе которых происходит исключение.
Вы получаете доступ к опции через «j!»http://help.eclipse.org/juno/topic/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/elcl16/exc_catch.png icon в окне отладки (т. Е. В «Breakpoint View»).

Add Java exception Window

Официальный раздел справки "Add Java Exception Breakpoint" имеет больше на этом.

  • Параметр Uncaught Exception заключается в приостановке выполнения, когда исключение того же типа, что и точка останова, выбрасывается в неперехваченное местоположение.
  • Опция Caught Exception заключается в приостановке выполнения, когда исключение того же типа, что и точка останова, выбрасывается в пойманное местоположение.
  • не забывайте Exception Breakpoint Suspend on Subclass of this Exception: выполнение
    приостановить, когда подклассы типа исключения встречаются.
    Например, если контрольная точка исключения для RuntimeException настроена на приостановку в подклассах, она также будет активирована NullPointerException.

alt text

+1

Потому что я не мог найти "J!" до тех пор, пока я не попрошу своего офицера: он находится в точке Breakpoints. Очевидно, я знаю, но кто-то другой может иметь такую ​​же проблему. –

+0

@ Самир: хорошая точка. Я добавил явную ссылку на это «Breakpoint view» (и ссылку на официальную помощь затмения в этом представлении) – VonC

Смежные вопросы