Исключение исключений в качестве выражения при отладке Java в Eclipse IDE
Бытовая ситуация для отладки для разработчиков Java - это то, в котором выбрасывается Исключение, а затем вам нужно вставить в отладчик, чтобы узнать, что его бросило. Обычно вы пытаетесь настроить некоторые точки останова до того, как будет выбрано исключение, и надеемся, что вы сможете определить ситуацию, которая ведет к этому исключению.
В Eclipse точка останова может иметь определенное выражение, где оно запускается только тогда, когда, например, переменная x равна значению y. Мой вопрос в том, можно ли определить какое-то глобальное выражение, где, как только генерируется исключение, оно улавливается отладчиком, позволяя программисту немедленно проверить все переменные? В идеале вы бы еще не ударили по блоку catch, Eclipse поймал бы исключение, которое будет поднято, и прекратит выполнение без изменения содержимого стека.
Возможно ли это или ограничено JVM?
Ответы
Ответ 1
Еще одна иллюстрация: Совет Eclipse: точка останова при исключении
Eclipse позволяет устанавливать точки останова на основе того, где происходит исключение.
Вы получаете доступ к опции с помощью значка "j!"
в окне отладки (т.е. В Просмотр точки останова ").
![Add Java exception Window]()
В разделе справки Добавить точку исключения исключений Java".
- Параметр Uncaught Exception - приостановить выполнение, когда исключение того же типа, что и точка останова, выведено в неперехваченное местоположение.
- Опция Caught Exception - приостанавливать выполнение, когда исключение того же типа, что и точка останова, попадает в пойманное местоположение.
- не забывайте Приостановка прерывания исключения в подклассе этого исключения:
приостанавливать выполнение, когда встречаются подклассы типа исключения.
Например, если контрольная точка исключения для RuntimeException
настроена на приостановку в подклассах, она также будет запускаться с помощью NullPointerException
.
![alt text]()
Ответ 2
http://agile.csc.ncsu.edu/SEMaterials/tutorials/eclipse-debugger/
В частности, часть "5.0 Special Breakpoints and Watching Expressions".