Heim  >  Artikel  >  Java  >  Beherrschen Sie die Prinzipien und Anwendungen des Java-Ausnahmebehandlungsmechanismus vollständig

Beherrschen Sie die Prinzipien und Anwendungen des Java-Ausnahmebehandlungsmechanismus vollständig

WBOY
WBOYnach vorne
2022-03-29 12:03:541722Durchsuche

Dieser Artikel vermittelt Ihnen relevantes Wissen über Java. Er stellt hauptsächlich die Prinzipien und anwendungsbezogenen Probleme des Ausnahmebehandlungsmechanismus vor, einschließlich Ausnahme und Fehler, Trycatch-Syntax, Trycatch-Ausführungssequenz usw. Ich hoffe, dass er für alle nützlich sein wird . Hilfreich.

Beherrschen Sie die Prinzipien und Anwendungen des Java-Ausnahmebehandlungsmechanismus vollständig

Empfohlene Studie: „Java-Lern-Tutorial

1. Einführung in Java-Ausnahmen

Jeder ist möglicherweise mit Trycatch vertraut und beherrscht es alle sehr gut.

Wenn während der Ausführung des Programms ein Fehler auftritt, wird eine Ausnahme ausgelöst. Es ist immer besser, eine Ausnahme auszulösen, als das Programm zu beenden.

Sie können auch einen Trycatch-Vorgang ausführen, wenn bekannt ist, dass ein Fehler auftritt, und bestimmte eindeutige Vorgänge ausführen, wenn eine Ausnahme auftritt.

1. Exception und Error

Exception und Error erben beide von der Throwable-Klasse. In Java können nur Instanzen des Throwable-Typs ausgelöst oder abgefangen werden.

Ausnahme ist eine vorhersehbare Ausnahme. Diese Ausnahme kann außerhalb des Unternehmens abgerufen und verarbeitet werden.

Fehler ist eine unvorhersehbare Ausnahme. Wenn ein Fehler auftritt, kann die JVM diesen direkt nicht verarbeiten.

Ausnahme ist in geprüfte Ausnahmen und nicht geprüfte Ausnahmen unterteilt.

Geprüfte Ausnahmen müssen beim Schreiben von Code mithilfe von Try Catch abgefangen werden (z. B. IOException).

Bei ungeprüften Ausnahmen findet der Compiler nicht heraus, ob dies einmal auftritt, z. B. eine Nullzeiger-Ausnahme. Diese Art von Ausnahme kann durch Angabe beim Schreiben oder Verwenden des Codes vermieden werden. Beispielsweise kann die Funktion findbugs von sts Nullzeigerausnahmen im Code erkennen.

2. Was ist der Unterschied zwischen NoClassDefFoundError und ClassNotFoundException?

NoClassDefFoundError ist ein Fehler, der von der JVM ausgelöst wird, wenn sie beim Laden einer Klasse über den Klassenpfad die entsprechende Klasse nicht finden kann.

ClassNotFoundException: Wenn diese Ausnahme während der Kompilierung auftreten kann, muss sie während der Kompilierung ausgelöst werden.

NoClassDefFoundError-Vorkommensszenarien:

  1. Die Klasse oder JAR, von der die Klasse abhängt, existiert nicht
  2. Die Klassendatei existiert, aber in einer anderen Domäne kann sie nicht gefunden werden

ClassNotFoundException-Szenario:

  1. Beim Aufruf der forName-Methode der Klasse kann die angegebene Klasse nicht gefunden werden
  2. try Eine Anweisung schließt einen Codeabschnitt in geschweifte Klammern ein, der eine oder mehrere Ausnahmen auslösen kann.
2. Catch-Anweisung

Die Parameter der Catch-Anweisung ähneln der Deklaration einer Methode, einschließlich eines Ausnahmetyps und eines Ausnahmeobjekts. Der Ausnahmetyp muss eine Unterklasse der Throwable-Klasse sein, die den von der Catch-Anweisung verarbeiteten Ausnahmetyp angibt. Das Ausnahmeobjekt wird vom Laufzeitsystem im durch try angegebenen Codeblock generiert und erfasst Objekt, in dem Objektmethoden aufgerufen werden können. Sie können mehrere Catch-Anweisungen verwenden, um jeweils unterschiedliche Arten von Ausnahmen zu behandeln. Das Java-Laufzeitsystem erkennt den von jeder Catch-Anweisung behandelten Ausnahmetyp von oben nach unten, bis eine Catch-Anweisung mit einem passenden Typ gefunden wird. Typübereinstimmung bedeutet hier, dass der von Catch behandelte Ausnahmetyp genau mit dem Typ des generierten Ausnahmeobjekts oder seiner übergeordneten Klasse übereinstimmt. Daher sollte die Reihenfolge der Catch-Anweisungen von speziell nach allgemein sein.

3. Final-Anweisung

Unabhängig davon, ob beim Versuch eine Ausnahme ausgelöst wird, wird der Code in der Final-Anweisung ausgeführt. Die wichtigste Funktion des Final-Anweisungsblocks sollte darin bestehen, die angeforderten Ressourcen freizugeben.

4. throws-Anweisung

throws erscheint immer nach dem Funktionsheader, um Ausnahmen anzuzeigen, die von der Methode ausgelöst werden können.

5. Die throw-Anweisung

ähnelt der throw-Anweisung, die jedoch im Catch-Modul abgelegt wird. Das Programm wird sofort nach der Ausführung von throw beendet Endlich.

6. Ausnahmen auslösen

public static void main(String[] args) {
    try {
        Class.forName("test");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }}

7. Die Ausführungssequenz von trycatch

Starten Sie die Ausführung ab der ersten Codezeile in try. Die JVM erstellt ein Ausnahmeobjekt.

Bestimmen Sie, ob der Catch das von jvm erstellte Ausnahmeobjekt erfassen kann.

Wenn es erfasst wird, wird das Programm nicht beendet und die Codelogik im Catch fortgesetzt abgefangen werden, werden die Ausnahmeinformationen direkt gedruckt und das Programm beendet. Wenn es in try keine Ausnahme gibt, wird der Code in try ausgeführt, der Fang übersprungen und der endgültige Codeblock eingegeben.

4. Prinzipien der Ausnahmebehandlung

Wenn eine zu erkennende Ausnahme in einer Methode ausgelöst wird, muss sie in der Methode deklariert werden, andernfalls muss sie mit Try-Catch in der Methode abgefangen werden, andernfalls schlägt die Kompilierung fehl.
Wenn die Funktion, die eine Ausnahme deklariert, aufgerufen wird, versuchen Sie entweder „Catch“ oder „Throws“, andernfalls schlägt die Kompilierung fehl.
Wann fängt man und wann wirft man? Der funktionale Inhalt kann gelöst werden, aber er kann nicht mithilfe von Catch gelöst werden. Verwenden Sie Würfe, um dem Anrufer mitzuteilen, dass es einen Anrufer gibt, der ihn löst.
Wenn eine Funktion mehrere Ausnahmen auslöst, müssen beim Aufruf mehrere entsprechende Catches für eine gezielte Verarbeitung vorhanden sein.

Empfohlenes Lernen: „Java-Tutorial

Das obige ist der detaillierte Inhalt vonBeherrschen Sie die Prinzipien und Anwendungen des Java-Ausnahmebehandlungsmechanismus vollständig. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen