Heim  >  Artikel  >  Java  >  So verwenden Sie Java-Ausnahmen und -Behauptungen

So verwenden Sie Java-Ausnahmen und -Behauptungen

WBOY
WBOYnach vorne
2023-04-20 08:31:061664Durchsuche

Java-Ausnahmen

In Java ist ein Ausnahmeobjekt immer eine Instanz einer Throwable-Unterklasse.

Das Fehlerklassensystem beschreibt interne Fehler und Ressourcenerschöpfungssituationen im Java-Betriebssystem.

Fehler, die durch die Programmierung verursacht werden, führen zu einer RuntimeException. Ausnahmen, die durch andere Fehlerursachen verursacht werden – beispielsweise Fehler in einem Programm, das aufgrund von E/A-Fehlern einmal ordnungsgemäß ausgeführt wurde, führen nicht zu RuntimeException-Ausnahmen.

Zu den von RuntimeException abgeleiteten Ausnahmen gehören die folgenden Probleme: 1> Falsche Typkonvertierung; 2> Array-Zugriff außerhalb der Grenzen; 3> Versuch, auf einen Nullzeiger zuzugreifen.

Zu den Ausnahmen, die nicht von RuntimeException abgeleitet sind, gehören:

1〉der Versuch, Daten vom Ende der Datei zu lesen;

2〉der Versuch, eine fehlerhafte URL zu öffnen;

3〉der Versuch, eine Zeichenfolge zum Erstellen einer Klasse zu verwenden Objekt, und wenn die der Zeichenfolge entsprechende Klasse nicht vorhanden ist;

Das Prinzip der RuntimeException-Behandlung ist: Wenn eine RuntimeException auftritt, muss es Ihr Fehler sein.

Verschiedene Browser können unterschiedliche URL-Typen verarbeiten Fehler hängen von der spezifischen Umgebung ab, nicht nur vom Programmcode.

In der Java-Sprachspezifikation werden alle Unterklassen von Error und Unterklassen von RuntimeException als ungeprüfte Ausnahmen bezeichnet, während andere Ausnahmen als geprüfte Ausnahmen bezeichnet werden.

Ausnahmen werden nur ausgelöst in den folgenden 4 Situationen:

1〉Eine Methode, die eine „überprüfte Ausnahme“ auslöst, wird aufgerufen, z. B. die readLine-Methode der BufferReader-Klasse

2〉Während das Programm ausgeführt wird, tritt ein Fehler auf, und verwenden Sie die Methode throw Anweisung zum Auslösen einer „geprüften Ausnahme“;

3〉Programmfehler, z. B. a[-1]=0 löst eine „ungeprüfte Ausnahme“ aus, z. B. einen Array-Index außerhalb der Grenzen (ArrayIndex--OutOfBoundsException) ;

4 〉In der Java Virtual Machine oder Laufzeitbibliothek ist ein interner Fehler aufgetreten.

Es ist nicht erforderlich, einen internen Fehler in Java zu deklarieren. Eine Methode muss alle „geprüften Ausnahmen“ deklarieren, die sie möglicherweise auslöst. Wenn Sie eine Methode der übergeordneten Klasse in Ihrer eigenen Unterklasse überschreiben. Es ist wichtig zu beachten, dass die Unterklasse nur das Gleiche tun kann, wenn die Methode der übergeordneten Klasse überhaupt keine geprüften Ausnahmen auslöst Wenn bei Try/Catch-Codeblöcken ein Code innerhalb der Methode eine Ausnahme auslöst und ihr Typ nicht in Catch angegeben ist, wird die Methode sofort beendet.

Sollte diejenigen abfangen und behandeln, von denen bekannt ist, wie sie mit Ausnahmen umgehen (verwenden Sie Catch). , und übergeben Sie die Ausnahmen, mit denen Sie nicht umgehen können (verwenden Sie Würfe);

Für try/catch/finally-Codeblöcke wird der Code in der final-Klausel unabhängig davon ausgeführt, ob die Ausnahme abgefangen wird;

Obwohl Java-Programmierer Der Code muss in der final-Klausel manuell eingerichtet werden, um Ressourcen zu recyceln. Da Java jedoch über einen integrierten „Garbage-Collection“-Mechanismus verfügt, ist nur eine sehr kleine Anzahl von Ressourcen manuell recycelbar.

Die Methode „actionPerformed“ kann keine geprüften Ausnahmen auslösen.

Einige Tipps zur Verwendung des Java-Ausnahmemechanismus:

1〉Die Ausnahmekontrolle kann einfache Tests nicht ersetzen. Die zum Abfangen von Ausnahmen erforderliche Zeit ist viel länger als bei ersteren, daher sollten Ausnahmen nur unter ungewöhnlichen Umständen verwendet werden ;

2〉Verfeinern Sie die Ausnahmen nicht.

3〉Unterdrücken Sie keine Ausnahmen: Sie können das folgende Format verwenden: try { //code} Catch (Exception e) { //empty}

4〉 Scheuen Sie sich nicht, Ausnahmen zu übergeben: Für einige Ausnahmen (z. B. Ausnahmen, die durch den Aufruf des FileInputStream-Konstruktors oder der readLine-Methode generiert werden) ist es besser, sie zu übergeben, als sie abzufangen. Sinnvoller ist es, den Benutzer über eine High-Level-Methode über einen Fehler zu informieren oder einen fehlgeschlagenen Befehl abzubrechen.

Java-Behauptungen

Standardmäßig sind Java-Behauptungen deaktiviert. Es kann mit -ea geöffnet und mit -da geschlossen werden. Die Option -ea:...aktiviert die Assertionsfunktion aller Klassen im Standardpaket. Das Ein- oder Ausschalten der Assertion ist eine Funktion des Klassenladers.

-da- und -ea-Optionen gelten nicht für diese „System“. Klassen", die keinen Klassenlader haben. Es funktioniert. Verwenden Sie für diese Systemklassen die Option -enablesystemassertions/-esa, um die Assertionsfunktion zu aktivieren:

1> Assertionsfehler sind ein schwerwiegender, nicht behebbarer Fehler

2> Programme Entwicklungs- und Testphasen;

Daher sollten Behauptungen nicht als Signal verwendet werden, um andere Teile des Programms darüber zu informieren, dass ein behebbarer Fehler aufgetreten ist, oder als Möglichkeit, Benutzer über das Programm zu informieren. Java-Assertionen sollten nur zum Auffinden interner Fehler im Programm während der Testphase verwendet werden.

Java-Assertionen sind ein Werkzeug, das während der Test- und Debugging-Phase verwendet wird, während die Protokollierung ein strategisches Werkzeug ist, das während des gesamten Lebenszyklus des Programms verwendet wird.

Das Folgende ist ein Abschnitt aus think in java

Richtlinien zu Verstößen

Verwenden Sie Ausnahmen, um die folgenden Dinge zu tun:

(1) Lösen Sie das Problem und rufen Sie die Methode, die den Verstoß verursacht hat, erneut auf.

(2) Verlangsamen Sie die Situation und machen Sie weiter, ohne die Methode noch einmal auszuprobieren.

(3) Berechnen Sie ein anderes Ergebnis als das, was die Methode liefern soll.

(4) Lösen Sie das Problem so weit wie möglich in der aktuellen Umgebung und werfen Sie denselben Verstoß erneut in eine fortgeschrittenere Umgebung.

(5) Lösen Sie Probleme so weit wie möglich in der aktuellen Umgebung und werfen Sie verschiedene Verstöße erneut in eine fortgeschrittenere Umgebung.

(6) Programmausführung abbrechen.

(7) Codierung vereinfachen. Wenn das Verstoßschema die Dinge komplizierter macht, wird es sehr ärgerlich sein, und es ist besser, es nicht zu verwenden.

(8) Machen Sie Ihre eigenen Bibliotheken und Programme sicherer. Dies ist sowohl eine „kurzfristige Investition“ (zur einfacheren Fehlerbehebung) als auch eine „langfristige Investition“ (zur Verbesserung der Robustheit der Anwendung)

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Java-Ausnahmen und -Behauptungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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