Esiste una funzione che interromperà automaticamente il debug alla prima occorrenza dell'eccezione?
Quindi noi
- avvia l'applicazione
- fare qualcosa che generi un'eccezione
- IntelliJ ha spuntato la linea evidenziata dove si è verificata un'eccezione.
Esiste una funzione che interromperà automaticamente il debug alla prima occorrenza dell'eccezione?
Quindi noi
Risposte:
Esegui | Visualizza i punti di interruzione | Breakpoint di eccezione
Un modo rapido per visualizzare la finestra di dialogo è premere Ctrl+ SHIFT+ F8(su Mac: Cmd+ SHIFT+ F8), quindi fare clic sulla scheda dei punti di interruzione delle eccezioni. Se questa era l'ultima scheda che stavi visualizzando, sarà comunque selezionata, rendendo più semplice sfogliare l'attivazione e la disattivazione delle eccezioni.
Ciò causerà l'interruzione di IntelliJ nel punto del codice (o codice libreria) in cui è stata sollevata l'eccezione. In particolare, si ottiene una "prima possibilità" nella gestione delle eccezioni, prima che lo stack venga guidato alla ricerca di blocchi catch / finally da eseguire.
SUGGERIMENTO: Java tende a generare molte eccezioni internamente durante il caricamento delle classi, quindi l'interruzione di tutte le eccezioni può diventare noiosa. La buona notizia è che è possibile escludere determinati tipi di eccezione utilizzando il campo condizione .
Per esempio:
!(this instanceof java.lang.ClassNotFoundException)
È possibile concatenare più di tali condizioni insieme a &&
.
In IntelliJ IDEA 14 vai a:
Run -> View Breakpoints -> Check "Java Exceptions Breakpoints" -> Uncheck "Caught Exceptions"
Se non deselezioni, Caught Exceptions
l'esecuzione verrà interrotta ogni volta che Java Framework
genera un'eccezione interna.
Si C'è. È necessario definire un punto di interruzione dell'eccezione (può essere "Qualsiasi eccezione") nella finestra di dialogo dei punti di interruzione in IntelliJ IDEA.
Le eccezioni possono essere filtrate per condizione o classe, se lo si desidera, o se si è interessati a eccezioni catturate o non rilevate.
Se fai clic sul piccolo segno "+" nell'angolo in alto a sinistra, puoi aggiungere un nuovo punto di interruzione. Se si seleziona Breakpoint eccezioni, viene visualizzata una piccola finestra di dialogo in cui è possibile immettere la classe di eccezioni da interrompere (nel caso in cui non si desideri interrompere tutte le eccezioni).
Nelle versioni più recenti su intellij in Esegui > Visualizza punti di interruzione .
Quindi controllare i punti di interruzione delle eccezioni Java -> Qualsiasi eccezione .
Un buon modo per eseguire il debug delle eccezioni è utilizzare il pacchetto dell'app principale e il carattere jolly .*
. In questo modo salti tutte le altre eccezioni delle librerie, poiché la maggior parte delle volte stai cercando eccezioni generate dalla tua app e non da altre librerie (che possono essere molte eccezioni).
Come un esempio mostrato nell'immagine che uso com.gs.mercury.*
per rompere ogni volta che l'app genera un'eccezione. Se utilizzi le eccezioni per ciò a cui servono (per gestire casi eccezionali e non per gestire il flusso di situazioni normali), ti fermerai solo quando raggiungi l'eccezione desiderata quasi sempre.
PD. risposta aggiunta solo per sottolineare il filtro della classe Catch piuttosto utile .