try/catch/finally
Kurz: Im try-Block steht Code, der fehlschlagen kann. Tritt eine Ausnahme auf, springt das Programm in den passenden catch-Block. Der finally-Block läuft immer, egal ob ein Fehler auftrat.
Genauer: Ein try braucht mindestens einen catch oder einen finally. Mehrere catch-Blöcke fangen verschiedene Ausnahmetypen, der erste passende gewinnt. Deshalb steht der speziellere Typ vor dem allgemeineren.
Im Detail
try {
int zahl = Integer.parseInt(eingabe);
System.out.println(100 / zahl);
} catch (NumberFormatException e) {
System.out.println("Keine Zahl");
} catch (ArithmeticException e) {
System.out.println("Division durch 0");
} finally {
System.out.println("Aufräumen");
}- finally: Für Aufräumarbeiten (Datei schließen, Verbindung trennen). Läuft auch bei return im try.
- Mehrere Typen: In Java
catch (A | B e), in Pythonexcept (A, B). - Python:
try,except,else(wenn kein Fehler),finally. - JavaScript:
try { } catch (e) { } finally { }, Fehlerobjekt hatmessageundstack. - Fehler: Zu breites
catch (Exception e)versteckt Programmfehler.
Siehe auch: Exception Handling (Ausnahmebehandlung), throw und throws