Drucken Sie die StackTrace- und Debug-Ausnahmen in Java
stackTrace (call trace auf Französisch) ist die Darstellung des Stacks während der Ausführung in java des Programms. Ausnahmen sind in unseren Programmen üblich, wenn Programmierer ihre Programme kompilieren. Die Aufrufverfolgung ermöglichte es uns, die Fehlerquelle zu verfolgen.public static void main(String[] args) {
press(null);//line 9
}
static void press(int[] a) {
System.out.println("button "+a[0]);//line 12
}
Ausnahme im Thread "main" java.lang.NullPointerException
bei myClass.press(StringCompare.java:12)
bei myClass.main(StringCompare.java:9)
Dieses Beispiel ist einfach, Sie können feststellen, wo der Fehler aufgetreten ist, indem Sie auf die zuletzt aufgerufene Methode klicken. Der Fehler befindet sich in Zeile 12 und zeigt den Zugriff auf ein Nullobjekt an (NullPointerException). Das einzige vorhandene Objekt ist a[0], also ist es null und wir stellen fest, dass die press-Methode im Hauptteil mit einem Null-Parameter aufgerufen wird.
Beispiel für try/catch
Die Methode java.lang.Throwable.printStackTrace() Druckt die gesamte Sequenz vom Anfang bis zum Auftreten der Ausnahme als Zeilen in absteigender Reihenfolge des Stapels. Die letzte Zeile stellt den Stamm dar, der die erste gestapelte Methode ist, und die letzte stellt den oberen Teil des Stapels dar, dessen Fehler darin enthalten ist. Die Linien sind rot, weil die Anzeige damit fertig ist. System.err.
Ausnahme im Thread "main" java.lang.IllegalArgumentException: input == null!Diese Ausnahme wird ausgelöst Durch Ausführen des Programms:
at javax.imageio.ImageIO.read(Unknown Source)
at Fenetre.(Fenetre.java:127)
at Test.main(Test.java:9)
Die Klasse Fenetre.java öffnet sich und wir können in Zeile 127 nach der Ursache suchen, die darauf hinweist, dass der Eingabestrom null ist. Das bedeutet, dass das Bild nicht gefunden wurde, aber warum hat es die Ausnahme ausgelöst?
Ausnahme im Thread "main" java.lang.IllegalArgumentException: input == null!Wir suchen nach dem Typ der Ausnahme im Catch und stellen fest, dass es sich um IOExeption handelt, da die getResource-Methode zwingend auf die Ressource zugreifen muss, die sich in file/icone.png befindet, andernfalls ist das Bild in unserem Fall nicht nicht zugänglich ist, wird eine Ausnahme ausgelöst und das Programm wird gestoppt.
Referenzen
Was ist ein Stack-Trace und wie kann ich ihn zum Debuggen meiner Anwendungsfehler verwenden?
Class Throwable
So drucken Sie einen Stack-Trace zum Debuggen von Java-Ausnahmen