Fehler sind der Fluch für Benutzer und Programmierer gleichermaßen. Entwickler möchten offensichtlich nicht, dass ihre Programme ständig abstürzen, und Benutzer sind mittlerweile so daran gewöhnt, Fehler in ihren Programmen zu haben, dass sie widerstrebend akzeptieren, den Preis für Software zu zahlen, die mit an Sicherheit grenzender Wahrscheinlichkeit mindestens einen Fehler aufweist.
Java wurde entwickelt, um Programmierern die Möglichkeit zu geben, eine fehlerfreie Anwendung zu entwerfen. Wenn eine Anwendung mit Ressourcen oder Benutzern interagiert, erkennt der Programmierer möglicherweise Ausnahmen, die behandelt werden können. Leider gibt es Ausnahmen, über die der Programmierer keine Kontrolle hat oder die er einfach ignoriert. Kurz gesagt, nicht alle Ausnahmen sind gleich, daher müssen Programmierer mehrere Typen berücksichtigen.
Ausnahmen sind Ereignisse, die dazu führen, dass ein Programm nicht in der beabsichtigten Ausführung funktioniert. Es gibt drei Arten von Ausnahmen: geprüfte Ausnahmen, Fehler und Laufzeitausnahmen.
Die geprüfte Ausnahme
Eine geprüfte Ausnahme ist eine Ausnahme, die eine Java-Anwendung verarbeiten können sollte. Wenn die Anwendung beispielsweise Daten aus einer Datei liest, sollte sie in der Lage sein, FileNotFoundException zu verarbeiten. Schließlich gibt es keine Garantie dafür, dass die erwartete Datei dort erscheint, wo sie sein soll. Auf dem Dateisystem kann alles passieren, ohne dass die Anwendung davon weiß.
Schauen wir uns dieses Beispiel genauer an. Angenommen, wir verwenden die FileReader-Klasse, um Zeichendateien zu lesen. Wenn Sie sich die FileReader-Konstruktordefinition in der Java-API ansehen, finden Sie die Methodensignatur:
public FileReader(String fileName) throws FileNotFoundException
Wie Sie sehen können, gibt der Konstruktor explizit an, dass der FileReader-Konstruktor eine FileNotFoundException auslösen kann. Dies ist sinnvoll, da die Dateinamenzeichenfolge von Zeit zu Zeit wahrscheinlich falsch ist. Schauen Sie sich den folgenden Code an:
public static void main(String[] args){ FileReader fileInput = null; //打开输入文件 fileInput = new FileReader("Untitled.txt"); }
Syntaktisch sind diese Anweisungen korrekt, aber dieser Code wird niemals kompiliert. Der Compiler weiß, dass der FileReader-Konstruktor eine FileNotFoundException auslösen kann, und es liegt am aufrufenden Code, diese Ausnahme zu behandeln. Es gibt zwei Möglichkeiten: Erstens können wir die Ausnahme übergeben, indem wir eine Throw-Klausel angeben:
public static void main(String[] args) throws FileNotFoundException{ FileReader fileInput = null; //打开输入文件 fileInput = new FileReader("Untitled.txt"); }
, oder wir können die Ausnahme behandeln:
public static void main(String[] args){ FileReader fileInput = null; try { //打开输入文件 fileInput = new FileReader("Untitled.txt"); } catch(FileNotFoundException ex) { //告诉用户去找文件 } }
Eine gut geschriebene Java-Anwendung sollte damit umgehen können der Scheck Extrem ungewöhnlich.
Fehler
Die zweite Art von Ausnahme wird als Fehler bezeichnet. Wenn eine Ausnahme auftritt, erstellt die JVM ein Ausnahmeobjekt. Diese Objekte werden von auswerfbaren Klassen abgeleitet. Die auswerfbare Klasse hat zwei Hauptunterklassen – Fehler und Ausnahme. Die Error-Klasse stellt Ausnahmen dar, die von der Anwendung wahrscheinlich nicht behandelt werden.
Diese Ausnahmen gelten als selten. Beispielsweise können einer JVM die Ressourcen ausgehen, weil die Hardware nicht alle Prozesse verarbeiten kann, die sie verarbeiten muss. Anwendungen können Fehler erkennen und den Benutzer benachrichtigen, aber normalerweise muss die Anwendung heruntergefahren werden, bis das zugrunde liegende Problem behoben ist.
Laufzeitausnahmen
Laufzeitausnahmen treten einfach auf, weil der Programmierer einen Fehler gemacht hat. Sie haben den Code geschrieben und für den Compiler sieht alles gut aus. Wenn Sie den Code ausführen, stürzt er ab, weil er versucht hat, auf ein nicht vorhandenes Array-Element zuzugreifen, oder weil ein Logikfehler dazu geführt hat, dass eine Methode mit einer Null aufgerufen wurde Wert. Oder jede Menge Fehler, die ein Programmierer machen könnte. Aber das ist in Ordnung, wir erkennen diese Ausnahmen durch umfassende Tests, oder?
Fehler und Laufzeitausnahmen fallen in die Kategorie der ungeprüften Ausnahmen.
Das obige ist der detaillierte Inhalt vonWelche Ausnahmetypen gibt es in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!