Перехват исключений в качестве выражения при отладке Java в Eclipse IDE - PullRequest
21 голосов
/ 25 февраля 2009

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

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

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

Ответы [ 2 ]

37 голосов
/ 25 февраля 2009

Другая иллюстрация: Совет 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

3 голосов
/ 25 февраля 2009

http://agile.csc.ncsu.edu/SEMaterials/tutorials/eclipse-debugger/

В частности, часть «5.0 Специальные точки останова и выражения для просмотра».

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