Gibt es eine Funktion, die das Debuggen beim Auftreten der ersten Ausnahme automatisch unterbricht?
Also wir
- Anwendung starten
- Mach etwas, das eine Ausnahme auslöst
- IntelliJ hat eine hervorgehobene Zeile angezeigt, in der eine Ausnahme aufgetreten ist.
debugging
exception
intellij-idea
Mike Chaliy
quelle
quelle
Antworten:
Führen Sie | aus Haltepunkte anzeigen | Ausnahme-Haltepunkte
quelle
Eine schnelle Möglichkeit, das Dialogfeld aufzurufen, besteht darin, Ctrl+ SHIFT+ F8(auf Mac: Cmd+ SHIFT+ F8) zu drücken und dann auf die Registerkarte Ausnahme-Haltepunkte zu klicken. Wenn dies die letzte Registerkarte war, die Sie angezeigt haben, wird sie weiterhin ausgewählt, sodass Sie die Unterbrechung bei Ausnahmen einfach ein- und ausschalten können.
Dies führt dazu, dass IntelliJ an der Stelle im Code (oder Bibliothekscode) unterbrochen wird, an der die Ausnahme ausgelöst wurde. Insbesondere erhalten Sie eine erste Chance bei der Ausnahmebehandlung, bevor der Stapel nach Catch / finally-Blöcken durchsucht wird, die ausgeführt werden sollen.
TIPP: Java neigt dazu, beim Laden von Klassen intern viele Ausnahmen auszulösen, sodass das Brechen aller Ausnahmen ziemlich mühsam werden kann. Die gute Nachricht ist, dass Sie bestimmte Arten von Ausnahmen über das Bedingungsfeld ausschließen können.
Zum Beispiel:
Sie können mehrere solcher Bedingungen mit verketten
&&
.quelle
In IntelliJ IDEA 14 gehen Sie zu:
Run -> View Breakpoints -> Check "Java Exceptions Breakpoints" -> Uncheck "Caught Exceptions"
Wenn Sie das Kontrollkästchen nicht deaktivieren, wird
Caught Exceptions
die Ausführung jedes Mal gestoppt, wennJava Framework
eine interne Ausnahme ausgelöst wird .quelle
Ja da ist. Sie müssen im Dialogfeld "Haltepunkte" in IntelliJ IDEA einen Ausnahme-Haltepunkt definieren (dies kann "Beliebige Ausnahme" sein).
Die Ausnahmen können bei Bedarf nach Bedingung oder Klasse gefiltert werden oder danach, ob Sie an abgefangenen oder nicht erfassten Ausnahmen interessiert sind.
quelle
Wenn Sie auf das kleine "+" - Zeichen in der oberen linken Ecke klicken, können Sie einen neuen Haltepunkt hinzufügen. Wenn Sie Ausnahme-Haltepunkt auswählen, wird ein kleines Dialogfeld angezeigt, in dem Sie die Ausnahmeklasse eingeben können, für die die Unterbrechung unterbrochen werden soll (falls Sie nicht alle Ausnahmen unterbrechen möchten).
quelle
In neueren Versionen von Intellij unter Ausführen > Haltepunkte anzeigen .
Aktivieren Sie dann Java Exception Breakpoints -> Any Exception .
Eine gute Möglichkeit, die Ausnahmen zu debuggen, besteht darin, Ihr Haupt-App-Paket und den Platzhalter zu verwenden
.*
. Auf diese Weise überspringen Sie alle anderen Bibliotheksausnahmen, da Sie meistens nach Ausnahmen suchen, die von Ihrer App und nicht von einer anderen Bibliothek ausgelöst werden (was viele Ausnahmen sein kann).Als Beispiel in dem Bild gezeigt, das ich benutze
com.gs.mercury.*
jedes Mal, wenn die App eine Ausnahme auslöst. Wenn Sie Ausnahmen für das verwenden, wofür sie bestimmt sind (um Ausnahmefälle zu behandeln und nicht um den Fluss normaler Situationen zu behandeln), werden Sie nur dann anhalten, wenn Sie fast immer die gewünschte Ausnahme erreichen.PD. Antwort hinzugefügt, nur um auf den ziemlich nützlichen Catch-Klassenfilter hinzuweisen .
quelle