Empfohlen, 2024

Tipp Der Redaktion

Unterschied zwischen geprüften und ungeprüften Ausnahmen in Java

"Throwable" ist die übergeordnete Klasse der Klassen Error und Exception. Die Klasse "RuntimeException" und ihre Unterklassen, die Klasse "Error" und ihre untergeordneten Klassen sind die "ungeprüften Ausnahmen", während die verbleibenden Unterklassen der Klasse "Exception" außer "RuntimeException" die geprüften Ausnahmen sind. Der grundlegende Unterschied zwischen geprüften und ungeprüften Ausnahmen besteht darin, dass die geprüften Ausnahmen vom Compiler geprüft werden, während der Compiler die ungeprüften Ausnahmen nicht überprüft.

Lassen Sie uns die anderen Unterschiede zwischen geprüften und ungeprüften Ausnahmen mit Hilfe der Vergleichstabelle diskutieren.

Vergleichstabelle

VergleichsgrundlageGeprüfte AusnahmeUngeprüfte Ausnahme
BasicDer Compiler überprüft die geprüfte Ausnahme.Der Compiler prüft nicht die Ungeprüfte Ausnahme.
Klasse der AusnahmeMit Ausnahme der Klasse "RuntimeException" werden alle untergeordneten Klassen der Klasse "Exception" sowie die Klasse "Error" und ihre untergeordneten Klassen als "Checked Exception" markiert.Die Klasse "RuntimeException" und ihre untergeordneten Klassen sind "ungeprüfte Ausnahmen".
HandhabungWenn wir die geprüfte Ausnahme nicht behandeln, werden die Compiler-Objekte verwendet.Selbst wenn wir die ungeprüfte Ausnahme nicht behandeln, widerspricht der Compiler nicht.
ZusammenstellungDas Programm kann nicht kompiliert werden, wenn der Programmcode eine nicht behandelte geprüfte Ausnahme enthält.Das Programm wird erfolgreich kompiliert, auch wenn der Programmcode eine nicht behandelte, nicht geprüfte Ausnahme enthält.

Definition der geprüften Ausnahme

Die geprüften Ausnahmen sind diejenigen Ausnahmen, die vom Compiler für die reibungslose Ausführung des Programms geprüft werden. Der Compiler prüft, ob das Programm die geprüfte Ausnahme behandeln kann oder nicht. Wenn der Code die Ausnahme nicht behandeln kann, tritt ein Kompilierungsfehler auf. Alle Unterklassen der Klasse "Exception" mit Ausnahme der Klasse RuntimeException sind die geprüften Ausnahmen.
Lassen Sie uns die geprüfte Ausnahme anhand eines Beispiels untersuchen.

 import java.io. *; Klasse Beispiel {public static void main (String args []) {FileInputStream fis = null; fis = new FileInputStream ("B: /myfile.txt"); // Dieser Konstruktor FileInputStream (Dateiname) löst FileNotFoundException aus, eine geprüfte Ausnahme. int k; while ((k = fis.read ())! = -1) {// Die Methode read () der FileInputStream-Klasse löst ebenfalls eine geprüfte Ausnahme aus: IOException. System.out.print ((char) k); } fis.close (); // Die Methode close () schließt den Dateieingabestrom, der IOException auslöst. }} 

Im obigen Code versuchen wir, den Inhalt der Datei zu öffnen, zu lesen und anzuzeigen. Es kann vorkommen, dass die Datei nicht vorhanden ist. Dann tritt FileNotFoundException auf, die eine geprüfte Ausnahme darstellt. Wenn die geprüfte Ausnahme nicht behandelt wird, lässt der Compiler das Programm nicht problemlos kompilieren. Es wird ein Fehler beim Kompilieren angezeigt. Für eine reibungslose Kompilierung muss die geprüfte Ausnahme abgefangen oder als ausgelöst deklariert werden.

Definition der nicht geprüften Ausnahme

Nicht geprüft Ausnahmen sind Ausnahmen, die vom Compiler nicht geprüft werden. Der Compiler kompiliert das Programm erfolgreich, auch wenn die Ausnahmen nicht vom Code behandelt werden. Die Klasse "Error" und ihre untergeordneten Klassen, die Klasse "Runtime" und ihre Unterklassen sind die ungeprüften Ausnahmen.

Lassen Sie uns ein Beispiel für eine ungeprüfte Ausnahme sehen.

 class Beispiel {public static void main (String args []) {int arr [] = {1, 2, 3, 4, 5}; System.out.println (arr [7]); // ArrayIndexOutOfBoundsException. }} 

Im obigen Code können Sie sehen, dass es eine ArrayIndexOutOfBoundsException gibt, da ich versuche, auf das Element zuzugreifen, das nicht vorhanden ist. Da es sich hierbei um eine ungeprüfte Ausnahme handelt, tritt kein Fehler beim Kompilieren auf und die Datei wird ohne Fehler kompiliert. Das Programm wird jedoch erst ausgeführt, wenn die Ausnahme behandelt wird. Für eine reibungslose Ausführung müssen also die Ausnahmen abgefangen oder für geworfen erklärt werden

Hauptunterschiede zwischen geprüften und ungeprüften Ausnahmen

  1. Geprüfte Ausnahmen kennen den Compiler, während ungeprüfte Ausnahmen nicht den Compiler kennen.
  2. Mit Ausnahme der Klassen RuntimeException und Error werden alle Klassen auf Ausnahme geprüft. Auf der anderen Seite sind RuntimeException- und Error-Klassen ungeprüfte Ausnahmen.
  3. Wenn die geprüften Ausnahmen nicht vom Code behandelt werden, wendet der Compiler Objekte an. Wenn wir dagegen nicht ungeprüfte Ausnahmen im Code behandeln, widerspricht der Compiler nicht.
  4. Wenn markierte Ausnahmen im Code vorkommen, wird der Code nicht kompiliert, während der Compiler den Code trotzdem kompiliert, auch wenn ungeprüfte Ausnahmen nicht vom Code behandelt werden.

Hinweis :

Sowohl geprüfte als auch ungeprüfte Ausnahmen treten zwangsweise zur Laufzeit auf. Sie werden nur vom Compiler während der Kompilierzeit geprüft oder nicht überprüft.

Fazit:

Sowohl die geprüften als auch die nicht geprüften Ausnahmen müssen behandelt werden, um das Programm reibungslos auszuführen.

Top