← Back to list

error-handling
by TakumiOkayasu
dotfiles for work
⭐ 0🍴 0📅 Jan 23, 2026
SKILL.md
name: error-handling description: エラーハンドリングを実装する際に使用。回復戦略と復元パターンをカバー。
Error Handling
📋 実行前チェック(必須)
このスキルを使うべきか?
- 例外処理を実装する?
- try-catchを設計する?
- リトライロジックを実装する?
- エラーレスポンスを設計する?
前提条件
- エラーの種類を分類したか?(回復可能/不可能)
- ユーザーへのエラーメッセージを検討したか?
- ログに記録すべき情報を整理したか?
禁止事項の確認
- エラーを握りつぶそうとしていないか?(空のcatch)
- スタックトレースをユーザーに露出しようとしていないか?
- 全てのエラーを同じように扱おうとしていないか?
トリガー
- 例外処理実装時
- try-catch設計時
- リトライロジック実装時
- エラーレスポンス設計時
🚨 鉄則
回復可能かどうかで処理を分ける。
エラー分類
// 回復可能(リトライ対象)
class TransientError extends Error { retryable = true; }
// 回復不可能
class PermanentError extends Error { retryable = false; }
リトライパターン
async function withRetry<T>(
fn: () => Promise<T>,
maxRetries = 3,
delay = 1000
): Promise<T> {
for (let i = 0; i < maxRetries; i++) {
try {
return await fn();
} catch (error) {
if (!error.retryable || i === maxRetries - 1) throw error;
await sleep(delay * Math.pow(2, i)); // 指数バックオフ
}
}
}
ユーザー向けエラー
// 🚫 内部詳細を露出しない
res.status(500).json({
error: 'Internal server error'
// stacktrace: ... ❌
});
// ログには詳細を記録
logger.error('DB connection failed', { error, requestId });
🚫 禁止事項まとめ
- 空のcatchブロック(エラー握りつぶし)
- スタックトレースのユーザー露出
- 全エラーの同一扱い
- リトライなしの一時的エラー
Score
Total Score
50/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
Reviews
💬
Reviews coming soon