Katalog
concept#Software Engineering#Zuverlässigkeit#Observability#Sicherheit

Error Handling

Grundsätzliche Strategien zum Erkennen, Klassifizieren und Behandeln von Fehlern in Softwaresystemen.

Error Handling beschreibt Strategien und Mechanismen zum Erkennen, Klassifizieren und Reagieren auf Fehler in Softwaresystemen.
Etabliert
Mittel

Klassifikation

  • Mittel
  • Technisch
  • Design
  • Fortgeschritten

Technischer Kontext

Zentrale Log-Lösung (z. B. ELK/Opensearch)Monitoring und Alerts (z. B. Prometheus)Distributed Tracing (z. B. Jaeger, OpenTelemetry)

Prinzipien & Ziele

Fehler früh validieren und negativere Pfade explizit behandeln.Konsistente, maschinenlesbare Fehlerformate bereitstellen.Wiederherstellung und Fallback statt stummer Fehler.
Umsetzung
Team, Domäne

Use Cases & Szenarien

Kompromisse

  • Fehlerhafte Klassifizierung führt zu falschen Alerts.
  • Zu grobe Fallbacks können inkonsistente Zustände erzeugen.
  • Unzureichende Logs erschweren Debugging massiv.
  • Fehler früh validieren und klare HTTP-Statuscodes verwenden.
  • Korrelation-IDs durch alle Komponenten propagieren.
  • Fehler kontextreich und strukturiert loggen (JSON).

I/O & Ressourcen

  • Anforderungs- und SLO-Definitionen
  • Fehler- und Ausnahme-Taxonomie
  • Logging- und Tracing-Infrastruktur
  • Standardisierte Fehlerantworten
  • Alerts, Metriken und Dashboards
  • Dokumentation von Recovery-Strategien

Beschreibung

Error Handling beschreibt Strategien und Mechanismen zum Erkennen, Klassifizieren und Reagieren auf Fehler in Softwaresystemen. Es umfasst präventive Validierung, konsistente Fehlermeldungen, Rückfallpfade und Wiederherstellungsstrategien für robustes Laufzeitverhalten. Gutes Error Handling reduziert Ausfallzeiten und erleichtert Betrieb, Debugging und Nutzerkommunikation.

  • Reduziert Ausfallzeiten durch klare Recovery-Strategien.
  • Erleichtert Ursachenanalyse durch strukturierte Logs und Traces.
  • Verbessert API-Interoperabilität durch standardisierte Fehlerformate.

  • Nicht alle Fehler lassen sich vollständig automatisiert reparieren.
  • Mehr Aufwand für Design, Logging und Tests erforderlich.
  • Standardisierte Formate können domain-spezifische Details verbergen.

  • Fehlerrate

    Anteil fehlerhafter Anfragen pro Zeitspanne.

  • Mean Time To Recover

    Durchschnittliche Zeit bis zur Wiederherstellung nach einem Fehler.

  • Anzahl kritischer Alerts

    Häufigkeit von Alerts, die sofortiges Eingreifen erfordern.

HTTP API mit RFC 7807 Fehlerformat

REST-API liefert standardisiertes Problem-JSON zur maschinenlesbaren Fehlerbehandlung.

Kompensationstransaktion als Recovery

Bei teilweisem Fehlschlag werden Kompensationsschritte ausgeführt, um Konsistenz wiederherzustellen.

Circuit Breaker bei Überlast

Schützt abhängige Services vor weiteren Requests bei wiederholten Fehlern.

1

Fehler-Taxonomie definieren und priorisieren.

2

Standardisiertes Fehlerformat und Codes festlegen.

3

Logging- und Tracing-Konventionen implementieren.

4

Fallbacks, Retries und Circuit Breaker einführen und testen.

⚠️ Technische Schulden & Engpässe

  • Legacy-Komponenten ohne standardisiertes Fehlerformat.
  • Unvollständige Tests für Fehlerfälle und Timeouts.
  • Fehlende Retention-Strategie für strukturierte Logs.
Externe AbhängigkeitenFehlende TestabdeckungUnstrukturierte Logs
  • Produktion loggt keine Korrelation-IDs, Debugging unmöglich.
  • Client zeigt interne Fehlermeldung dem Endnutzer an.
  • Automatische Retries ohne Idempotenz erzeugen doppelte Effekte.
  • Fehlerdetails mit sensiblen Daten loggen.
  • Zu viele Alerts (Alert Fatigue) durch unscharfe Regeln.
  • Fallbacks, die inkonsistente Datenzustände erzeugen.
Software-Architektur und FehlerbehandlungsprinzipienErfahrung mit Logging, Tracing und MonitoringKenntnis von API-Design und Protokollen
Verfügbarkeit und AusfallsicherheitObservability und FehlerdiagnoseAPI- und Nutzerkommunikation
  • Rechtliche Vorgaben zum Log-Handling
  • Beschränkte Ressourcen für Retention und Storage
  • Legacy-Systeme mit inkompatiblen Fehlerformaten