suchen
HeimJavajavaLernprogrammSo finden Sie den Ort, an dem eine Ausnahme im Ausnahmestapel in Java auftritt

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.

So finden Sie den Ort, an dem eine Ausnahme im Ausnahmestapel in Java auftritt

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!

Stellungnahme
Dieser Artikel ist reproduziert unter:CSDN. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung?Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung?Mar 17, 2025 pm 05:46 PM

In dem Artikel werden Maven und Gradle für Java -Projektmanagement, Aufbau von Automatisierung und Abhängigkeitslösung erörtert, die ihre Ansätze und Optimierungsstrategien vergleichen.

Wie erstelle und verwende ich benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning und Abhängigkeitsmanagement?Wie erstelle und verwende ich benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning und Abhängigkeitsmanagement?Mar 17, 2025 pm 05:45 PM

In dem Artikel werden benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning- und Abhängigkeitsmanagement erstellt und verwendet, wobei Tools wie Maven und Gradle verwendet werden.

Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache?Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache?Mar 17, 2025 pm 05:44 PM

In dem Artikel wird in der Implementierung von mehrstufigem Caching in Java mithilfe von Koffein- und Guava-Cache zur Verbesserung der Anwendungsleistung erläutert. Es deckt die Einrichtungs-, Integrations- und Leistungsvorteile sowie die Bestrafung des Konfigurations- und Räumungsrichtlinienmanagements ab

Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden?Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden?Mar 17, 2025 pm 05:43 PM

In dem Artikel werden mit JPA für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden erläutert. Es deckt Setup, Entity -Mapping und Best Practices zur Optimierung der Leistung ab und hebt potenzielle Fallstricke hervor. [159 Charaktere]

Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle?Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle?Mar 17, 2025 pm 05:35 PM

Mit der Klassenbelastung von Java wird das Laden, Verknüpfen und Initialisieren von Klassen mithilfe eines hierarchischen Systems mit Bootstrap-, Erweiterungs- und Anwendungsklassenloadern umfasst. Das übergeordnete Delegationsmodell stellt sicher

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)