Python、TypeScript、Rust、Goにおける例外、Result型、リトライロジック、サーキッドブレーカーなど、エラーハンドリングパターンをマスターすることで、より回復力のあるアプリケーションを構築します。
スキルZIPをダウンロード
Claudeでアップロード
設定 → 機能 → スキル → スキルをアップロードへ移動
オンにして利用開始
テストする
「error-handling-patterns」を使用しています。 外部APIを呼び出すときにエラー処理方法は?
期待される結果:
外部API呼び出しには、複数のレイヤーのエラーハンドリングを実装します:(1) 異なる障害タイプ用のカスタム例外階層、(2) 一時的なエラーのための指数バックオフ付きリトライ、(3) カスケード障害を防ぐためのサーキッドブレーカー、(4) フォールバックデータによるグレースフルデグラデーション。例:カスタム例外(NetworkError、TimeoutError、RateLimitError)を作成し、3回の試行と指数バックオフでAPI呼び出しをリトライデコレータでラップし、障害率をトラックするためにサーキッドブレーカーを使用し、APIが利用できない場合はキャッシュされたフォールバックを提供します。
「error-handling-patterns」を使用しています。 Result型はいつ例外の代わりに使用するべきですか?
期待される結果:
予期される障害(検証エラー、みつかりませんエラー、ビジネスロジックエラー)にはResult型を使用し、呼び出し元が成功と失敗の両方のケースを明示的に処理する必要があります。真正に例外的な状況(ヌルポインタ、メモリ不足、予期しないランタイムエラー)には例外を使用します。Result型はエラー処理を型システムで明示的にし、失敗ケースを考慮することを呼び出し側に強制します。TypeScriptでは、Result<T, E> = { ok: true, value: T } | { ok: false, error: E }です。Rustでは、?演算子とResult<T, E>型が組み込みサポートを提供します。このアプローチはコードの可読性を向上させ、予期しないランタイムエラーを減少させます。
セキュリティ監査
安全This 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.
品質スコア
作れるもの
アプリケーションの信頼性向上
適切な例外階層と意味のあるエラーメッセージを使用して、新規または既存の機能に堅牢なエラーハンドリングを追加します。
フォールトトレラントシステムの構築
分散システムとマイクロサービスのために、リトライロジック、サーキッドブレーカー、グレースフルデグラデーションを実装します。
クロス言語パターンの学習
各状況に最适合なアプローチを選択するために、Python、TypeScript、Rust、Goのエラーハンドリングアプローチを理解します。
これらのプロンプトを試す
データベースからユーザーデータを取得する関数の適切なエラーハンドリングを実装する手助けをしてください。カスタム例外クラスを作成し、さまざまなエラーシナリオを適切に処理したいと考えています。
JSONデータを解析するためのTypeScriptでのResult型パターンの実装方法を示してください。適切なエラー型とチェーン可能なエラーハンドリングを含めるしてください。
ネットワーク呼び出し用の指数バックオフを実装するPythonデコレータを作成してください。異なる例外タイプを処理し、試行回数を設定可能にしてください。
外部API呼び出し時にカスケード障害を防ぐためにPythonでサーキッドブレーカーパターンを実装してください。クローズ、オープン、ハーフオープン状態を含めるしてください。
ベストプラクティス
- 入力を早期に検証し、文脈を含む意味のあるエラーメッセージを提供することでファストフェイルを実行する
- スタックトレース、タイムスタンプ、関連するメタデータなど、エラー文脈を保持する
- エラーに意味のある対応が可能な適切なレベルでエラーを処理する
- エラーを適切にログする - 予期しないエラーをログし、予期される検証失敗はログしない
回避
- Catching too broadly with generic Exception handlers that hide bugs
- Empty catch blocks that silently swallow errors without logging or handling
- Returning error codes instead of using proper exceptions or Result types
- Ignoring async errors by not handling promise rejections properly
よくある質問
What is the difference between exceptions and Result types?
When should I use a circuit breaker?
How does exponential backoff work for retries?
What is graceful degradation?
Should I catch exceptions or let them propagate?
How do I create meaningful error messages?
開発者の詳細
作成者
sickn33ライセンス
MIT
リポジトリ
https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/error-handling-patterns参照
main
ファイル構成