Exception Handling (Ausnahmebehandlung)
Kurz: Exception Handling heißt, Fehler zur Laufzeit abzufangen und kontrolliert zu behandeln, statt dass das Programm abstürzt. Der Fehler wird als Objekt „geworfen“ und an passender Stelle „gefangen“.
Genauer: Normaler Code und Fehlerbehandlung werden getrennt. Wenn etwas schiefgeht (Datei fehlt, Index zu groß, Netzwerk weg), wird eine Ausnahme ausgelöst. Sie wandert im Aufruf-Stapel nach oben, bis ein passender Fänger sie behandelt. Wird sie nirgends gefangen, endet das Programm mit einer Fehlermeldung samt Stack-Trace.
Im Detail
- Auslösen: Mit throw und throws.
- Fangen: Mit try/catch/finally.
- Arten: Geprüfte (checked) Ausnahmen muss man behandeln, ungeprüfte (unchecked) nicht. Java trennt so, viele andere Sprachen kennen nur ungeprüfte.
- Typische Ausnahmen: IllegalArgumentException, EOFException (EOFE), arrayindexoutofboundsexception, nullpointerexception.
- Gute Praxis: Nur fangen, was man sinnvoll behandeln kann. Nie leer fangen („catch und nichts tun“). Aussagekräftige Meldungen schreiben. Ressourcen immer freigeben (try-with-resources-konzept).
- Alternative: Manche Sprachen (Go, Rust) geben Fehler als Rückgabewert zurück statt zu werfen.
Siehe auch: exceptions-konzept, mehrfache-exceptions