2013-05-15 3 views
23

Это кажется глупым вопросом, но я не могу понять, как отлаживать исключения в Intellij Idea. Googling тоже не помогает.Как использовать контрольные точки исключения Intellij Idea

Я пытаюсь создать контрольные точки исключения. Когда IDEA ломается, я ожидаю, что он даст мне стек вызовов, показывающий, что приводит к методу, который генерирует исключение, а также автоматическое окно просмотра, как инструмент отладки Visual Studio. Вместо этого он показывает все виды искаженных сообщений о Launcher или ClassLoader, но никаких признаков фактического исключения во время выполнения.

Так как же точно должна использоваться точка прерывания исключения IDEA?

+0

Не дубликат, но ответы здесь могут решить вашу проблему: http: // stackoverflow.com/questions/8850698/debugger-only-stop-at-breakpoints-will-not-step-over –

ответ

8

я наконец понял сам. В окнах View Breakpoints отметьте Any Exception, но снимите отметку с Caught exception. Исключения запуска и класса загрузчика пойманы и обрабатываются внутри JVM. Таким образом, любые пользовательские исключения будут пойманы без ручного указания типа исключения.

53

Он работает очень хорошо, и я действительно не знаю, какие проблемы у вас есть с Launcher или ClassLoader. Возможно, вы выбрали ловушку Any exceptions, и это означает, что она будет захватывать все виды исключений во время загрузки и загрузки классов. Вы должны сделать конкретный выбор о том, какие исключения поймать, или просто пройти через все их до тех пор, пока не будет обнаружено ваше исключение.

В любом случае я покажу вам, как я установил очень простой корпус, и вы увидите, что он работает очень хорошо.

У меня есть простой случай, когда будет выброшен NullPointerException.

Сначала вам нужно будет установить контрольную точку исключения.

Введите View Breakpoints... окно, нажав Ctrl + Сдвиг + F8. Затем нажмите маленький знак + в верхнем левом углу.

enter image description here

Введите NullPointerException и нажмите кнопку OK.

enter image description here

Убедитесь, что Any exception не проверяется.

Теперь запустите программу, щелкнув правой кнопкой мыши внутри основного метода и выберите Debug 'SomeClass.main()'

enter image description here

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

enter image description here

+0

Это был страшный «+», который меня подталкивал (и который привел меня сюда). По крайней мере IntelliJ согласен с этим; теперь мне просто нужно привыкнуть к этому. – fool4jesus

+3

Спасибо, человек, ты спас мне жизнь! Жаль, что я не смог бы поддержать вас 100000 раз – OWADVL

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