Welcome to Our Website

Checked und unchecked exceptions in Java mit Beispielen

Es gibt zwei Arten von Ausnahmen: checked exception und unchecked exception. In diesem Handbuch werden wir sie diskutieren. Der Hauptunterschied zwischen checked und unchecked exception besteht darin, dass die geprüften Exceptions zur Kompilierungszeit überprüft werden, während unchecked Exceptions zur Laufzeit überprüft werden.

Was sind geprüfte Ausnahmen?

Geprüfte Ausnahmen sind geprüft zur compile-Zeit., Wenn eine Methode eine geprüfte Ausnahme auslöst, sollte sie die Ausnahme mit dem try-catch-Block behandeln oder die Ausnahme mit dem Schlüsselwort throws deklarieren, andernfalls gibt das Programm einen Kompilierungsfehler aus.

Lassen Sie uns dies anhand eines Beispiels verstehen:

Checked Exception Example

In diesem Beispiel lesen wir die Datei myfile.txt und zeigen ihren Inhalt auf dem Bildschirm an. In diesem Programm gibt es drei Stellen, an denen eine geprüfte Ausnahme ausgelöst wird, wie in den Kommentaren unten erwähnt., FileInputStream, der zum Angeben des Dateipfads und des Dateinamens verwendet wird, wirft FileNotFoundException. Die read () – Methode, die den Dateiinhalt liest, wirft IOException und die close () – Methode, die den Dateieingabestrom schließt, wirft auch IOException.

Ausgabe:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: Unhandled exception type FileNotFoundExceptionUnhandled exception type IOExceptionUnhandled exception type IOException

Warum dieser Kompilierungsfehler? Wie ich am Anfang erwähnt habe, werden überprüfte Ausnahmen während der Kompilierung überprüft. Da wir die Ausnahmen nicht behandelt/deklariert haben, gab unser Programm den Kompilierungsfehler aus.
Wie der Fehler zu beheben?, Es gibt zwei Möglichkeiten, diesen Fehler zu vermeiden. Wir werden beide Wege nacheinander sehen.

Methode 1: Deklarieren Sie die Ausnahme mit dem Schlüsselwort throws.
Da wir wissen, dass alle drei Vorkommen von geprüften Ausnahmen innerhalb der main () – Methode liegen, besteht eine Möglichkeit, den Kompilierungsfehler zu vermeiden, darin, die Ausnahme in der Methode mit dem Schlüsselwort throws zu deklarieren. Sie denken vielleicht, dass unser Code FileNotFoundException und IOException auslöst, warum wir dann die IOException alleine deklarieren. Der Grund dafür ist, dass IOException eine übergeordnete Klasse von FileNotFoundException ist, sodass diese standardmäßig abgedeckt wird., Wenn Sie möchten, können Sie sie wie folgt deklarieren public static void main(String args) throws IOException, FileNotFoundException.

Ausgabe:
Dateiinhalt wird auf dem Bildschirm angezeigt.

Methode 2: Behandeln Sie sie mit Try-Catch-Blöcken.
Der Ansatz, den wir oben verwendet haben, ist überhaupt nicht gut. Es ist nicht die beste Ausnahmebehandlung Praxis. Sie sollten für jeden Ausnahmetyp eine aussagekräftige Nachricht angeben, damit jemand den Fehler leicht verstehen kann. Der Code sollte folgendermaßen aussehen:

Dieser Code wird einwandfrei ausgeführt und zeigt den Dateiinhalt an.,

Hier sind die wenigen anderen geprüften Ausnahmen –

  • SQLException
  • IOException
  • ClassNotFoundException
  • InvocationTargetException

Was sind ungeprüfte Ausnahmen?

Ungeprüften Ausnahmen sind bei der Kompilierung nicht überprüft. Das bedeutet, wenn Ihr Programm eine nicht aktivierte Ausnahme auslöst und selbst wenn Sie diese Ausnahme nicht behandelt/deklariert haben, gibt das Programm keinen Kompilierungsfehler aus. Meistens tritt diese Ausnahme aufgrund der fehlerhaften Daten auf, die der Benutzer während der Benutzer-Programm-Interaktion bereitgestellt hat., Es ist Sache des Programmierers, die Bedingungen im Voraus zu beurteilen, die solche Ausnahmen verursachen und angemessen behandeln können. Alle nicht aktivierten Ausnahmen sind direkte Unterklassen der RuntimeException-Klasse.

Können verstehen dies mit einem Beispiel:

Unchecked Exception-Beispiel

Wenn Sie diesen code kompilieren, würde es erfolgreich kompiliert, aber wenn Sie laufen, es würde werfen ArithmeticException. Das zeigt deutlich, dass ungeprüfte Ausnahmen zur Kompilierungszeit nicht überprüft werden, sondern zur Laufzeit auftreten. Mal sehen, ein anderes Beispiel.,

Dieser Code würde auch erfolgreich kompiliert, da ArrayIndexOutOfBoundsException ebenfalls eine nicht aktivierte Ausnahme ist.
Hinweis: Es bedeutet nicht, dass der Compiler diese Ausnahmen nicht überprüft, also sollten wir sie nicht behandeln. In der Tat sollten wir sie sorgfältiger behandeln. Zum Beispiel sollte im obigen Beispiel dem Benutzer eine Ausnahmemeldung angezeigt werden, dass er versucht, einen Wert anzuzeigen, der im Array nicht vorhanden ist, damit der Benutzer das Problem beheben kann.,

Output:

The specified index does not exist in array. Please correct the error.

Here are the few unchecked exception classes:

  • NullPointerException
  • ArrayIndexOutOfBoundsException
  • ArithmeticException
  • IllegalArgumentException
  • NumberFormatException

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.