Home

Ausnahmebehandlung

Ausnahmebehandlung bezeichnet in der Programmierung den Mechanismus, mit dem unerwartete Zustände oder Fehler während der Programmausführung erkannt, weitergegeben und verarbeitet werden. Ziel ist es, den normalen Programmfluss zu schützen, Ressourcen sauber freizugeben und sinnvolle Fehlermeldungen zu liefern.

Zu den grundlegenden Bausteinen gehören das Auslösen einer Ausnahme (throw oder raise), das Abfangen bzw. Verarbeiten

Sprachen unterscheiden in der Behandlung von Ausnahmen. Viele Sprachen unterscheiden zwischen geprüften (checked) und ungeprüften (unchecked)

Best Practices umfassen die Einsatzzwecke von Ausnahmen für außergewöhnliche Bedingungen statt für normalen Kontrollfluss, aussagekräftige Fehlermeldungen,

der
Ausnahme
(catch
oder
except)
sowie
optionales
Sauberhalten
oder
Aufräumen
(finally,
oder
entsprechende
Sprachkonstrukte
wie
try-with-resources
oder
using).
Wenn
eine
Ausnahme
auftritt,
wird
der
aktuelle
Codefluss
beendet
und
die
Ausführung
wird
durch
die
Aufruferkette
weitergeleitet,
bis
ein
geeigneter
Handler
gefunden
wird.
Dadurch
gelingt
eine
zentrale
Behandlung
von
Fehlerfällen
unabhängig
von
der
tieferen
Logik.
Ausnahmen;
Java
kennt
dieses
Muster,
wobei
geprägte
Ausnahmen
deklarierbar
sind.
Andere
Sprachen
wie
C#
weisen
keine
formale
Unterscheidung
zwischen
geprüft
und
ungeprüft
auf;
Python,
JavaScript
und
ähnliche
Sprachen
behandeln
alle
Ausnahmen
als
ungeprüft.
Unabhängig
davon
sollten
Ausnahmen
sinnvoll
klassifiziert
und
benannt
werden,
damit
Fehler
gezielt
abgefangen
werden
können.
das
Verhindern
des
stillen
Verschluckens
von
Fehlern,
sowie
stets
das
Freigeben
von
Ressourcen
(z.
B.
durch
Finally-,
Kontextmanager
oder
RAII-Ansätze).
Zudem
empfiehlt
sich
die
Kapselung
technischer
Fehler
hinter
sinnvollen
Domänenfehlern
und
die
Dokumentation
der
möglichen
Ausnahmen,
die
eine
Funktion
oder
Methode
werfen
kann.
In
komplexen
Systemen
ergänzen
Logging
und
Exceptions
eine
robuste
Fehlerbehandlung.