Исключение исключений в качестве выражения при отладке Java в Eclipse IDE

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

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

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

Ответ 1

Еще одна иллюстрация: Совет Eclipse: точка останова при исключении

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

Add Java exception Window

В разделе справки Добавить точку исключения исключений Java".

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

alt text