Computerwissenschaften

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 so gewohnt, Fehler in Programmen zu haben, dass sie widerwillig akzeptieren, den Preis für Software zu zahlen, die mit ziemlicher Sicherheit mindestens einen Fehler enthält. 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 eine Möglichkeit sind, wenn eine Anwendung mit einer Ressource oder einem Benutzer interagiert, und diese Ausnahmen können behandelt werden. 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.

 

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. Angenommen, wir verwenden die FileReaderKlasse, um eine Zeichendatei zu lesen. Wenn Sie sich die FileReader-Konstruktordefinition in der Java-API ansehen, sehen Sie die Methodensignatur:

public FileReader(String fileName)
throws FileNotFoundException

Wie Sie sehen können, gibt der Konstruktor ausdrücklich an, dass der FileReaderKonstruktor a auslösen kann FileNotFoundException. Dies ist sinnvoll, da es sehr wahrscheinlich ist, dass der fileNameString von Zeit zu Zeit falsch ist. Sehen Sie sich den folgenden Code an:

 public static void main(String[] args){
FileReader fileInput=null;
//Open the input file
fileInput=new FileReader("Untitled.txt");
}

Syntaktisch sind die Anweisungen korrekt, aber dieser Code wird niemals kompiliert. Der Compiler weiß, dass der FileReaderKonstruktor a auslösen kann, FileNotFoundExceptionund 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 auch eine throwsKlausel angeben:

 public static void main(String[] args) throws FileNotFoundException{
FileReader fileInput=null;
//Open the input file
fileInput=new FileReader("Untitled.txt");
}

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

 public static void main(String[] args){
FileReader fileInput=null;
try
{
//Open the input file
fileInput=new FileReader("Untitled.txt");
}
catch(FileNotFoundException ex)
{
//tell the user to go and find the file
}
}

Gut geschriebene Java-Anwendungen sollten in der Lage sein, geprüfte Ausnahmen zu bewältigen.

 

Fehler

Die zweite Art von Ausnahme ist als Fehler bekannt. Wenn eine Ausnahme auftritt, erstellt die JVM ein Ausnahmeobjekt. Diese Objekte stammen alle aus der ThrowableKlasse. Die ThrowableKlasse hat zwei Hauptunterklassen – Errorund Exception. Die ErrorKlasse 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

Eine 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 versucht hat, auf ein Element eines Arrays zuzugreifen, das nicht vorhanden ist, oder weil ein Logikfehler dazu geführt hat, dass eine Methode aufgerufen wurde mit einem Nullwert. 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.

Similar Posts

Schreibe einen Kommentar

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