Czy jest funkcja, która automatycznie przerwie debugowanie przy pierwszym wystąpieniu wyjątku?
Więc my
- uruchom aplikację
- zrób coś, co spowoduje wyjątek
- wyskoczył podświetlony wiersz IntelliJ, w którym wystąpił wyjątek.
debugging
exception
intellij-idea
Mike Chaliy
źródło
źródło
Odpowiedzi:
Uruchom | Wyświetl punkty przerwania | Wyjątki Punkty przerwania
źródło
Szybkim sposobem wyświetlenia okna dialogowego jest naciśnięcie Ctrl+ SHIFT+ F8(na Macu: Cmd+ SHIFT+ F8), a następnie kliknięcie karty wyjątków. Jeśli była to ostatnia karta, którą przeglądałeś, nadal będzie zaznaczona, dzięki czemu będziesz mógł łatwo łamać i wyłączać wyjątki.
Spowoduje to uszkodzenie IntelliJ w punkcie kodu (lub kodu biblioteki), w którym zgłoszono wyjątek. Konkretnie, dostajesz „pierwszą szansę” na obsługę wyjątków, zanim stos zostanie sprawdzony w poszukiwaniu bloków catch / wreszcie do wykonania.
WSKAZÓWKA: Java ma tendencję do rzucania wielu wyjątków wewnętrznie podczas ładowania klas, więc łamanie wszystkich wyjątków może być dość nudne. Dobrą wiadomością jest to, że można wykluczyć niektóre typy wyjątków za pomocą pola warunku .
Na przykład:
Możesz połączyć wiele takich warunków razem z
&&
.źródło
W IntelliJ IDEA 14 przejdź do:
Run -> View Breakpoints -> Check "Java Exceptions Breakpoints" -> Uncheck "Caught Exceptions"
Jeśli nie usuniesz zaznaczenia,
Caught Exceptions
wykonanie zostanie zatrzymane za każdym razem, gdyJava Framework
zgłosi wyjątek wewnętrzny.źródło
Tak jest. Musisz zdefiniować punkt przerwania wyjątku (może to być „Dowolny wyjątek”) w oknie dialogowym punktów przerwania w IntelliJ IDEA.
Wyjątki można filtrować według warunku lub klasy, jeśli jest to pożądane, lub według tego, czy interesują Cię wyjątki wyłapane lub nieprzyjęte.
źródło
Jeśli klikniesz mały znak „+” w lewym górnym rogu, możesz dodać nowy punkt przerwania. Jeśli wybierzesz punkt przerwania wyjątku, pojawi się małe okno dialogowe, w którym możesz wprowadzić klasę wyjątków do złamania (w przypadku, gdy nie chcesz łamać wszystkich wyjątków).
źródło
W nowszych wersjach na Intellij w Run > View Breakpoints .
Następnie sprawdź Punkty przerwania wyjątków Java -> Dowolny wyjątek .
Dobrym sposobem na debugowanie wyjątków jest użycie głównego pakietu aplikacji i dzikiej karty
.*
. W ten sposób pomijasz wszystkie inne wyjątki bibliotek, ponieważ w większości przypadków szukasz wyjątków zgłaszanych przez aplikację, a nie przez inną bibliotekę (może to być wiele wyjątków).Jako przykład pokazany na obrazku, którego używam
com.gs.mercury.*
do łamania za każdym razem, gdy aplikacja zgłasza wyjątek. Jeśli użyjesz wyjątków od tego, do czego służą (aby poradzić sobie z wyjątkowymi przypadkami i nie poradzić sobie z przepływem normalnych sytuacji), zatrzymasz się tylko wtedy, gdy prawie przez cały czas osiągniesz pożądany wyjątek.PD. dodano odpowiedź, aby wskazać całkiem użyteczny filtr klasy Catch .
źródło