Drei Arten von Ausnahmen in Java

Fehler sind der Fluch von Benutzern und Programmierern gleichermaßen. Entwickler möchten offensichtlich nicht, dass ihre Programme auf Schritt und Tritt umfallen, und Benutzer sind es mittlerweile gewohnt, Fehler zu machen Programme, die sie widerwillig akzeptieren, um den Preis für Software zu zahlen, bei der mit ziemlicher Sicherheit mindestens ein Fehler auftritt es. Java wurde entwickelt, um dem Programmierer eine sportliche Chance beim Entwerfen einer fehlerfreien Anwendung zu geben. Es gibt Ausnahmen, von denen der Programmierer weiß, dass sie möglich sind, wenn eine Anwendung mit einer Ressource oder einem Benutzer interagiert und diese Ausnahmen behandelt werden können. Leider gibt es Ausnahmen, die der Programmierer nicht kontrollieren oder einfach übersehen kann. Kurz gesagt, nicht alle Ausnahmen sind gleich und daher gibt es verschiedene Arten, über die ein Programmierer nachdenken muss.

Eine Ausnahme ist ein Ereignis, das dazu führt, dass das Programm nicht in der beabsichtigten Ausführung fließen kann. Es gibt drei Arten von Ausnahmen: die aktivierte Ausnahme, den Fehler und die Laufzeitausnahme.

instagram viewer

Die überprüfte Ausnahme

Überprüfte Ausnahmen sind Ausnahmen, mit denen eine Java-Anwendung umgehen sollte. Wenn eine Anwendung beispielsweise Daten aus einer Datei liest, sollte sie in der Lage sein, die Daten zu verarbeiten FileNotFoundException. Schließlich gibt es keine Garantie dafür, dass die erwartete Datei dort sein wird, wo sie sein soll. Im Dateisystem kann alles passieren, wovon eine Anwendung keine Ahnung hat.

Um dieses Beispiel noch einen Schritt weiter zu führen. Nehmen wir an, wir verwenden die FileReader Klasse zum Lesen einer Zeichendatei. Wenn Sie sich das ansehen FileReader-Konstruktordefinition in der Java-API Sie werden sehen, dass es sich um eine Methodensignatur handelt:

public FileReader (String fileName) löst FileNotFoundException aus.

Wie Sie sehen können, gibt der Konstruktor ausdrücklich an, dass die FileReader Konstruktor kann a werfen FileNotFoundException. Dies ist sinnvoll, da es sehr wahrscheinlich ist, dass die Dateiname Die Zeichenfolge ist von Zeit zu Zeit falsch. Sehen Sie sich den folgenden Code an:

public static void main (String [] args) { FileReader fileInput = null; // Eingabedatei öffnen. fileInput = neuer FileReader ("Untitled.txt"); }

Syntaktisch sind die Anweisungen korrekt, aber dieser Code wird niemals kompiliert. Der Compiler kennt das FileReader Konstruktor kann a werfen FileNotFoundException und es liegt am aufrufenden Code, diese Ausnahme zu behandeln. Es gibt zwei Möglichkeiten: Erstens können wir die Ausnahme von unserer Methode weitergeben, indem wir a angeben wirft Klausel auch:

public static void main (String [] args) löst FileNotFoundException {aus FileReader fileInput = null; // Eingabedatei öffnen. fileInput = neuer FileReader ("Untitled.txt"); }

Oder wir können tatsächlich mit der Ausnahme umgehen:

public static void main (String [] args) { FileReader fileInput = null; Versuchen. { // Eingabedatei öffnen. fileInput = neuer FileReader ("Untitled.txt"); } catch (FileNotFoundException ex) { // Sag dem Benutzer, er soll die Datei suchen. } }

Gut geschriebene Java-Anwendungen sollten mit geprüften Ausnahmen umgehen können.

Fehler

Die zweite Art von Ausnahme ist als Fehler bekannt. Wenn eine Ausnahme auftritt, wird die JVM erstellt ein Ausnahmeobjekt. Diese Objekte stammen alle von der Werfen Klasse. Das Werfen Klasse hat zwei Hauptunterklassen - Error und Ausnahme. Das Error Klasse bezeichnet eine Ausnahme, mit der eine Anwendung wahrscheinlich nicht umgehen kann.

Diese Ausnahmen gelten als selten. Beispielsweise gehen der JVM möglicherweise die Ressourcen aus, da die Hardware nicht alle Prozesse bewältigen kann, mit denen sie zu tun hat. Es ist möglich, dass die Anwendung den Fehler abfängt, um den Benutzer zu benachrichtigen. In der Regel muss die Anwendung jedoch geschlossen werden, bis das zugrunde liegende Problem behoben ist.

Laufzeitausnahmen

EIN Laufzeitausnahme tritt einfach auf, weil der Programmierer einen Fehler gemacht hat. Sie haben den Code geschrieben, für den Compiler sieht alles gut aus, und wenn Sie den Code ausführen, fällt er um, weil er Es wurde versucht, auf ein Element eines nicht vorhandenen Arrays zuzugreifen, oder ein logischer Fehler führte dazu, dass eine Methode mit einer Null aufgerufen wurde Wert. Oder eine beliebige Anzahl von Fehlern, die ein Programmierer machen kann. Aber das ist okay, wir erkennen diese Ausnahmen durch umfassende Tests, oder?

Fehler und Laufzeitausnahmen fallen in die Kategorie der nicht aktivierten Ausnahmen.