error-handling-patterns
Robuste Fehlerbehandlungsmuster implementieren
Auch verfügbar von: wshobson
Entwickeln Sie widerstandsfähigere Anwendungen, indem Sie Fehlerbehandlungsmuster beherrschen, einschließlich Exceptions, Result-Typen, Retry-Logik und Circuit Breaker in Python, TypeScript, Rust und Go.
Die Skill-ZIP herunterladen
In Claude hochladen
Gehe zu Einstellungen → Fähigkeiten → Skills → Skill hochladen
Einschalten und loslegen
Teste es
Verwendung von "error-handling-patterns". Wie behandle ich Fehler beim Aufruf einer externen API?
Erwartetes Ergebnis:
Für externe API-Aufrufe implementieren Sie mehrere Ebenen der Fehlerbehandlung: (1) Benutzerdefinierte Exception-Hierarchie für verschiedene Fehlertypen, (2) Retry mit exponentiellem Backoff für vorübergehende Fehler, (3) Circuit Breaker zur Vermeidung kaskadierender Ausfälle, (4) Elegante Degradation mit Fallback-Daten. Beispielansatz: Erstellen Sie benutzerdefinierte Exceptions (NetworkError, TimeoutError, RateLimitError), umhüllen Sie API-Aufrufe mit einem Retry-Decorator mit 3 Versuchen und exponentiellem Backoff, verwenden Sie Circuit Breaker zur Verfolgung von Fehlerraten, stellen Sie gecachte Fallback-Daten bereit, wenn die API nicht verfügbar ist.
Verwendung von "error-handling-patterns". Wann sollte ich Result-Typen anstelle von Exceptions verwenden?
Erwartetes Ergebnis:
Verwenden Sie Result-Typen für erwartete Fehler (Validierungsfehler, Nicht-gefunden-Fehler, Geschäftslogikfehler), bei denen der Aufrufer sowohl Erfolgs- als auch Fehlerfälle explizit behandeln sollte. Verwenden Sie Exceptions für wirklich außergewöhnliche Situationen (Null-Pointer, Speicher voll, unerwartete Laufzeitfehler). Result-Typen machen die Fehlerbehandlung im Typsystem explizit und zwingen Aufrufer, Fehlerfälle zu berücksichtigen. In TypeScript: Result<T, E> = { ok: true, value: T } | { ok: false, error: E }. In Rust bieten der ?-Operator und der Result<T, E>-Typ integrierte Unterstützung. Dieser Ansatz verbessert die Code-Lesbarkeit und reduziert unerwartete Laufzeitfehler.
Sicherheitsaudit
SicherThis skill is a documentation and educational resource about error handling patterns. The static scanner flagged 49 potential issues, but after evaluation all findings are FALSE POSITIVES. The detected patterns (backtick syntax examples, HTTP library examples, error categories) are educational code snippets in markdown documentation, not executable malicious code. No security concerns identified.
Qualitätsbewertung
Was du bauen kannst
Anwendungszuverlässigkeit verbessern
Fügen Sie robuste Fehlerbehandlung zu neuen oder bestehenden Features mit ordnungsgemäßen Exception-Hierarchien und aussagekräftigen Fehlermeldungen hinzu.
Fehlertolerante Systeme aufbauen
Implementieren Sie Retry-Logik, Circuit Breaker und elegante Degradation für verteilte Systeme und Microservices.
Sprachübergreifende Muster lernen
Verstehen Sie Fehlerbehandlungsansätze in Python, TypeScript, Rust und Go, um den besten Ansatz für jede Situation zu wählen.
Probiere diese Prompts
Helfen Sie mir, eine ordnungsgemäße Fehlerbehandlung für eine Funktion zu implementieren, die Benutzerdaten aus einer Datenbank abruft. Ich möchte benutzerdefinierte Exception-Klassen erstellen und verschiedene Fehlerszenarien angemessen behandeln.
Zeigen Sie mir, wie man ein Result-Typ-Muster in TypeScript zum Parsen von JSON-Daten implementiert. Inklusive ordnungsgemäßer Fehlertypen und verkettbarer Fehlerbehandlung.
Erstellen Sie einen Python-Decorator, der Retry-Logik mit exponentiellem Backoff für Netzwerkaufrufe implementiert. Behandeln Sie verschiedene Exception-Typen und fügen Sie konfigurierbare Versuche hinzu.
Implementieren Sie ein Circuit Breaker-Muster in Python, um kaskadierende Ausfälle beim Aufruf einer externen API zu verhindern. Inklusive geschlossener, offener und halboffener Zustände.
Bewährte Verfahren
- Schnell fehlschlagen durch frühe Validierung der Eingabe und Bereitstellung aussagekräftiger Fehlermeldungen mit Kontext
- Fehlerkontext einschließlich Stack Traces, Zeitstempeln und relevanter Metadaten bewahren
- Fehler auf der geeigneten Ebene behandeln, wo sie sinnvoll reagiert werden können
- Fehler angemessen protokollieren - unerwartete Fehler protokollieren, nicht erwartete Validierungsfehler
Vermeiden
- Zu breit mit generischen Exception-Handlern fangen, die Bugs verbergen
- Leere Catch-Blöcke, die Fehler stillschweigend ohne Protokollierung oder Behandlung schlucken
- Fehlercodes zurückgeben anstatt ordnungsgemäße Exceptions oder Result-Typen zu verwenden
- Async-Fehler ignorieren, indem Promise-Ablehnungen nicht ordnungsgemäß behandelt werden
Häufig gestellte Fragen
Was ist der Unterschied zwischen Exceptions und Result-Typen?
Wann sollte ich einen Circuit Breaker verwenden?
Wie funktioniert exponentielles Backoff für Retries?
Was ist elegante Degradation?
Sollte ich Exceptions fangen oder propagieren lassen?
Wie erstelle ich aussagekräftige Fehlermeldungen?
Entwicklerdetails
Autor
sickn33Lizenz
MIT
Repository
https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/error-handling-patternsRef
main
Dateistruktur