Avatar ·

Geprüfte und ungeprüfte Ausnahmen in Java: Was ist der Unterschied und wie verwendet man sie?

Hallo zusammen. Ich habe angefangen, Java zu lernen, und kann den Unterschied zwischen checked (geprüften) und unchecked (ungeprüften) Ausnahmen nicht verstehen. Ich habe die Dokumentation gelesen, aber in der Praxis bin ich trotzdem verwirrt. Zum Beispiel schreibe ich eine einfache Methode, die eine Datei liest: ```java public void readFile(String path) { FileReader file = new FileReader(path); BufferedReader reader = new BufferedReader(file); String line = reader.readLine(); System.out.println(line); } ``` Der Compiler beschwert sich über `FileReader` und `readLine()` – er sagt, dass `FileNotFoundException` und `IOException` behandelt werden müssen. Ich packe es in einen `try-catch`-Block und es funktioniert. Aber dann schreibe ich eine Methode, die Zahlen dividiert: ```java public int divide(int a, int b) { return a / b; } ``` Wenn ich `b = 0` übergebe, stürzt das Programm mit `ArithmeticException` ab, aber der Compiler verlangt keine Behandlung. Warum ist das so? Was ist die Logik? Wann sollte man `throws` verwenden und wann `try-catch`? Und wie entwirft man seine eigenen Ausnahmen richtig?