Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Ausbreitung von Ausnahmen | Abschnitt
Java Exception Handling

bookAusbreitung von Ausnahmen

Swipe um das Menü anzuzeigen

Wenn ein Java-Programm ausgeführt wird, können Ausnahmen tief innerhalb einer Reihe von Methodenaufrufen ausgelöst werden.

Note
Definition

Exception Propagation ist der Prozess, bei dem eine Ausnahme den Aufruf-Stack nach oben wandert, bis sie entweder von einem passenden catch-Block abgefangen wird oder, falls sie nicht behandelt wird, das Programm zum Abbruch bringt.

Das Schlüsselwort throws wird in Methodendeklarationen verwendet, um anzugeben, dass eine Methode eine oder mehrere geprüfte Ausnahmen auslösen kann. Das bedeutet, dass die Methode die Ausnahme nicht selbst behandelt, sondern die Verantwortung für die Behandlung an die aufrufenden Methoden weitergibt.

Wenn eine Methode eine Ausnahme nicht mit einem try-catch-Block abfängt, wird die Ausnahme an die aufrufende Methode weitergegeben. Dies setzt sich entlang der Aufrufkette der Methoden fort. Wenn keine der Methoden im Aufruf-Stack die Ausnahme behandelt, erreicht sie schließlich die Java Virtual Machine (JVM), die das Programm beendet und einen Stack-Trace ausgibt. Dieser Mechanismus ermöglicht es, die Ausnahmebehandlung auf einer höheren Ebene der Anwendung zu zentralisieren, anstatt jede mögliche Ausnahme an der jeweiligen Stelle zu behandeln, an der sie auftreten könnte.

Main.java

Main.java

copy
1234567891011121314151617181920
package com.example; import java.io.IOException; public class Main { public static void main(String[] args) { try { readFile(); System.out.println("File read successfully."); } catch (IOException e) { System.out.println("Caught exception: " + e.getMessage()); } } // This method declares that it throws IOException public static void readFile() throws IOException { // Simulate an error when reading a file throw new IOException("Unable to read file."); } }

Im obigen Programm deklariert die Methode readFile, dass sie eine IOException mit dem throws-Schlüsselwort auslösen kann. Wenn readFile von main aufgerufen wird, behandelt sie die Ausnahme nicht selbst. Stattdessen wird, falls eine IOException auftritt, diese an die main-Methode weitergegeben. Die main-Methode enthält einen try-catch-Block, der die IOException abfängt und durch das Ausgeben einer Nachricht behandelt.

Dies zeigt, wie die Ausnahme vom Auslösepunkt durch den Aufruf-Stack wandert, bis sie schließlich von einem geeigneten catch-Block abgefangen und behandelt wird. Wenn die main-Methode die Ausnahme nicht abfangen würde, würde sie weiter propagiert werden und die JVM würde das Programm nach Ausgabe des Stack-Traces beenden.

question mark

Was ist der Zweck des Schlüsselworts throws in einer Java-Methodendeklaration?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 9

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 1. Kapitel 9
some-alt