Der Ausnahmestapel ist für uns das wichtigste Mittel, um Probleme im täglichen Leben zu lokalisieren, und er bietet uns eine große Hilfe bei der Lösung von Problemen. Aber wir alle haben möglicherweise die Angewohnheit, eine Ausnahme zu sehen, insbesondere wenn es viele Ausnahmestapel und tiefe Ebenen gibt.
Ich fühlte mich sehr besorgt und verängstigt, ich überflog es schnell und begann zu erraten, was das Problem sein sollte, und dann Basierend darauf wurde weiterhin geraten, den Code anzupassen, obwohl auch ein Debuggen möglich ist, was immer noch viel Zeit verschwendet.
Dies liegt daran:
1. Wir haben die Informationen zum Ausnahmestapel nicht sorgfältig gelesen.
2 . Wir wissen nicht genau, was das Problem verursacht.
Die Lösung ist:
1. Kennen Sie den Prozess der Ausnahmestapelgenerierung.
2. Lesen Sie die Stapelinformationen geduldig.
3. Lösen Sie das Problem
1. Ausnahmegenerierungsprozess: Fehler wird oben gemeldet, folgen Sie unten
Zum Beispiel: Wir haben den folgenden Testcode
package com.bsx.test; public class TestException { public static void main(String[] args) { TestException exception = new TestException(); exception.m1(); } public void m1() { m2(); } public void m2() { m3(); } public void m3() { String name = null; System.out.println(name.length()); } }
Nach der Ausführung lautet das Ausgabeergebnis wie folgt:
Exception in thread "main" java.lang.NullPointerException at com.bsx.test.TestException.m3(TestException.java:22) at com.bsx.test.TestException.m2(TestException.java:17) at com.bsx.test.TestException.m1(TestException.java:13) at com.bsx.test.TestException.main(TestException.java:9)
Wir können sehen, dass die Reihenfolge der Fehlerprotokollausgabe entgegengesetzt zur Aufrufreihenfolge ist.
Wir wissen, dass Java-Methoden bei der Ausführung im Stapel der virtuellen Maschine ausgeführt werden. Jedes Mal, wenn eine Methode ausgeführt wird, wird ein Stapelrahmen erstellt und in den Stapel der virtuellen Maschine verschoben.
Dies ist eine Last-In-First-Out-Struktur. Wenn also ein Fehler gemeldet wird, wird der Fehler zuerst vom Angerufenen gemeldet, und dann meldet der Anrufer nacheinander einen Fehler. Daher die Reihenfolge beim Drucken Bei Fehlern befindet sich auch die Fehlermeldeposition oben und die aufrufende Zeile rückwärts. Daraus können wir die Schlussfolgerung ziehen: Der Fehler wird oben gemeldet, und das Folgende folgt.
2. Verstehen Sie die Fehlermeldung: Suchen Sie den Ort des Fehlers in unserem Code
Aus der obigen Analyse wissen wir, dass sich der Fehlerort oben befindet. In den meisten Fällen gibt die Fehlermeldung oben an, wo der Fehler in unserem Code aufgetreten ist.
Aber manchmal ist das oberste Protokoll nicht unser eigener Code. Das liegt daran, dass unser Code den Code einiger JAR-Pakete von Drittanbietern aufruft. Dies hat jedoch keinen Einfluss auf die Lokalisierung des Problems. Wir lokalisieren das Problem weiterhin anhand des oben gemeldeten Fehlers und gehen weiter unten vor. Der tatsächliche Fehlerort ist weiterhin oben.
Dann müssen wir nur noch unseren eigenen Code von oben nach unten finden. Die erste gefundene Stelle unseres Codes ist die Stelle in unserem Code, die den Fehler verursacht hat. Manchmal sind einige Fehlermeldungen offensichtlich und wir können anhand der Fehlermeldungen direkt den Kern des Problems lokalisieren.
Manchmal gibt die Fehlermeldung nicht eindeutig die Ursache des Fehlers an. Zu diesem Zeitpunkt können wir an dieser Stelle einen Haltepunkt setzen, um den Fehler zu beheben.
Das obige ist der detaillierte Inhalt vonSo finden Sie den Ort, an dem eine Ausnahme im Ausnahmestapel in Java auftritt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!