In Java gibt es zwei Arten von Ausnahmen:
1) Prüfen: sind die Ausnahmen, die überprüft, zum Zeitpunkt der Kompilierung. Wenn ein Code innerhalb einer Methode eine geprüfte Ausnahme auslöst, muss die Methode entweder die Ausnahme behandeln oder die Ausnahme mit dem Schlüsselwort throws angeben.
Betrachten Sie beispielsweise das folgende Java-Programm, das die Datei am Speicherort öffnet. „C:\test\a.txt“ und druckt die ersten drei Zeilen davon., Das Programm wird nicht kompiliert, da die Funktion main() FileReader() und FileReader () eine geprüfte Ausnahme FileNotFoundException. Es verwendet auch readLine() und close() Methoden, und diese Methoden werfen auch checked exception IOException
Ausgabe:
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown at Main.main(Main.java:5)
Um das obige Programm zu beheben, müssen wir entweder eine Liste von Ausnahmen angeben wirft, oder wir müssen try-catch Block verwenden. Wir haben Throws im folgenden Programm verwendet., Da FileNotFoundException eine Unterklasse von IOException ist, können wir IOException einfach in der Throws-Liste angeben und das obige Programm Compiler-fehlerfrei machen.
Ausgabe: Erste drei Zeilen der Datei „C:\test\a.txt“
2) Unchecked sind die Ausnahmen, die zur kompilierten Zeit nicht überprüft werden. In C++ sind alle Ausnahmen deaktiviert, sodass der Compiler die Ausnahme weder behandeln noch angeben muss. Es liegt an den Programmierern, zivilisiert zu sein und die Ausnahmen anzugeben oder abzufangen.,
In Java Ausnahmen unter Fehler und RuntimeException Klassen sind unchecked Ausnahmen, alles andere unter throwable überprüft wird.
+-----------+ | Throwable | +-----------+ / \ / \ +-------+ +-----------+ | Error | | Exception | +-------+ +-----------+ / | \ / | \ \________/ \______/ \ +------------------+ unchecked checked | RuntimeException | +------------------+ / | | \ \_________________/ unchecked
Betrachten Sie das folgende Java-Programm. Es kompiliert gut, aber es löst ArithmeticException aus, wenn es ausgeführt wird. Der Compiler erlaubt das Kompilieren, da ArithmeticException eine ungeprüfte Ausnahme ist.,2b7cfd03″>
;
int
y =
10
;
int
z = y/x;
}
}
Output:
Exception in thread "main" java.lang.ArithmeticException: / by zero at Main.main(Main.java:5)Java Result: 1
Why two types?,
Siehe Unchecked Ausnahmen-Die Kontroverse für Details.
Sollten wir unsere Ausnahmen aktivieren oder deaktivieren?
Es folgt das Endergebnis aus Java-Dokumenten
Wenn von einem Client vernünftigerweise erwartet werden kann, dass er sich von einer Ausnahme erholt, machen Sie ihn zu einer geprüften Ausnahme. Wenn ein Client nichts tun kann, um sich von der Ausnahme zu erholen, machen Sie es zu einer unkontrollierten Ausnahme
Java Corner auf GeeksforGeeks
Bitte schreiben Sie Kommentare, wenn Sie etwas Falsches finden, oder Sie möchten weitere Informationen zu dem oben diskutierten Thema teilen.
Achtung Leser! Hör jetzt nicht auf zu lernen., Holen Sie sich alle wichtigen Java Foundation und Collections Konzepte mit den Grundlagen von Java und Java Collections Kurs zu einem studentenfreundlichen Preis und werden Industrie bereit.