EMZETT.
Login

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 Python except (A, B).
  • Python: try, except, else (wenn kein Fehler), finally.
  • JavaScript: try { } catch (e) { } finally { }, Fehlerobjekt hat message und stack.
  • Fehler: Zu breites catch (Exception e) versteckt Programmfehler.

Siehe auch: Exception Handling (Ausnahmebehandlung), throw und throws