Was ist ein Ausnahmebehandler in Java?

In Java sind Ausnahmen eine von vielen Strukturen, die den Steuerfluss eines Programms steuern. Sie sind insbesondere unbeabsichtigte Nebenwirkungen der normalen Ausführung eines Programms. Beim Schreiben von Code, der auf Ausnahmen stoßen kann, muss der Programmierer neue Anweisungen für das Programm definieren, wenn eine Ausnahme auftritt, ein Vorgang, der als "Ausnahmebehandlung" bezeichnet wird. Ausnahme-Handler bestehen aus drei verschiedenen Blöcken: try, catch und final.

Java-Ausnahmen

Wenn ein Programm eine Methode aufruft, die sich unerwartet verhält, hat es eine "Ausnahme" gegeben. Wenn das Programm beispielsweise versucht, eine Zahl durch Null zu teilen oder eine Datei zu laden, die nicht vorhanden ist, verhält sich das Programm möglicherweise nicht wie erwartet und löst eine Ausnahme aus, um diesen Fehler zu signalisieren. Wenn eine Methode so definiert ist, dass sie eine Ausnahme im Methodenkörper auslöst, können Sie sie nur innerhalb eines Ausnahmebehandlers aufrufen - oder den Fehler an den Baum übergeben, indem Sie angeben, dass die aufrufende Methode dieselbe Ausnahme auslöst.

Versuchen Sie Blöcke

In einem erfolgreichen Ausnahmehandler muss die Methode, die die Ausnahme auslöst, in einem "try" -Block enthalten sein, wie in "try {exceptionThrowingMethod ();}" Nachdem der try-Block definiert wurde, definiert der Programmierer catch-Blöcke, die die Ausnahmemethoden abfangen im try Blockwurf enthalten.

Fangblöcke

Ein einzelner try-Block kann mehrere "catch" -Blöcke haben, um unterschiedliche Verhaltensweisen zu definieren, wenn eine Ausnahme auftritt. Wenn ein Programm auf eine Ausnahme stößt, die in mehreren catch-Blöcken definiert ist, wird zuerst der oberste catch-Block ausgeführt. Da alle Ausnahmen von der Ausnahmeklasse abhängen, bedeutet dies, dass ein Programm, wenn Ihr erster catch-Block "catch (Exception e) {}" liest, diesen Block immer ausführt, wenn er auf eine Ausnahme stößt, und niemals einen der anderen. Ordnen Sie Ihre Fangblöcke von den spezifischsten bis zu den wenigsten spezifisch an, wenn Sie eine genaue Kontrolle über Ihr Programm wünschen.

Endlich Blöcke

Ein "finally" -Block ist eine optionale Komponente eines Ausnahmebehandlers. Verwenden Sie es, um ein Verhalten zu definieren, das immer ausgeführt werden soll, auch wenn eine Ausnahme auftritt. Dies ist in einigen Fällen erforderlich, weil Sie nicht garantieren können, dass der letzte Teil des try-Blocks ausgeführt wird. Wenn eine Ausnahme ausgelöst und abgefangen wird, wird dieser Block an diesem Punkt unterbrochen. Wenn Sie beispielsweise "InputStream.close ()" in einem finally-Block platzieren, wird sichergestellt, dass Ihre Streams unabhängig von einer zuvor im Code ausgelösten Ausnahme sicher geschlossen werden.

Beliebte Beiträge