mcpField
L
ln-772-error-handler-setup

ln-772-error-handler-setup

github.com/levnikolaevich開発584382 回インストール2 日前に更新
リポジトリ

ln-772-error-handler-setup について

.NET と Python のバックエンドにグローバルな例外処理を設定するスキルです。フレームワーク別のハンドラーと例外クラスを生成し、設定を検証します。

主な機能

  1. 01ASP.NET Core ミドルウェアまたは FastAPI ハンドラーの設定
  2. 02カスタム例外クラスとエラーモデルの生成
  3. 03ProblemDetails と環境別の詳細表示に対応
  4. 04既存設定を確認して重複を回避
  5. 05生成コードとエラーレスポンスの検証

活用シーン

  1. 01ASP.NET Core プロジェクトへの一元的な例外処理の追加
  2. 02FastAPI でカスタム例外や入力検証エラーを処理
  3. 03本番ではスタックトレースを隠し、開発時は詳細を表示

MCP 対応

MCP ツールで ASP.NET Core と FastAPI の最新のエラー処理パターンを調査します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-772-error-handler-setup

インストール後、Claude Code で/ln-772-error-handler-setupを入力して読み込まれたか確認します。

詳細

ln-772-error-handler-setup

タイプ: L3 ワーカー カテゴリ: 7XX プロジェクトのブートストラップ

.NET および Python のバックエンドアプリケーション向けに、グローバルエラーハンドリングを設定します。


概要

項目詳細
入力ln-770 のコンテキストストア
出力例外処理ミドルウェアとカスタム例外
スタック.NET(ASP.NET Core ミドルウェア)、Python(FastAPI 例外ハンドラー)

フェーズ 1:コンテキストを受け取る

コーディネーターからコンテキストストアを受け取ります。

必須コンテキスト:

  • STACK:.NET または Python
  • FRAMEWORK:ASP.NET Core または FastAPI
  • PROJECT_ROOT:プロジェクトディレクトリのパス
  • ENVIRONMENT:Development または Production

冪等性チェック:

  • .NET:GlobalExceptionMiddleware または UseExceptionHandler を grep します
  • Python:@app.exception_handler または exception_handlers.py を grep します
  • 見つかった場合:{ "status": "skipped" } を返します

フェーズ 2:エラーハンドリングのパターンを調査する

MCP ツールを使用して、最新のドキュメントを取得します。

.NET の場合:

MCP ref: "ASP.NET Core global exception handling middleware"
Context7: /dotnet/aspnetcore

Python の場合:

MCP ref: "FastAPI exception handlers custom exceptions"
Context7: /tiangolo/fastapi

調査する主なパターン:

  1. ミドルウェアパイプライン内での配置
  2. 例外型と HTTP ステータスコードのマッピング
  3. ProblemDetails(RFC 7807)形式
  4. Development と Production でのエラー詳細
  5. ロギングの統合

フェーズ 3:決定事項

Q1:エラーレスポンス形式
オプション説明
ProblemDetails(RFC 7807)(推奨)標準化された形式で、広く採用されています
カスタム形式プロジェクト固有の要件
Q2:エラー詳細のレベル
環境スタックトレース内部例外リクエストの詳細
Development✓ 表示✓ 表示✓ 表示
Production✗ 非表示✗ 非表示✗ 非表示
Q3:エラー分類

標準エラーコードを定義します。

コードHTTP ステータス説明
VALIDATION_ERROR400入力データが無効です
UNAUTHORIZED401認証が必要です
FORBIDDEN403権限が不足しています
NOT_FOUND404リソースが見つかりません
CONFLICT409リソースの状態が競合しています
INTERNAL_ERROR500予期しないサーバーエラーです

フェーズ 4:設定を生成する

.NET の出力ファイル
ファイル用途
Middleware/GlobalExceptionMiddleware.cs例外処理ミドルウェア
Exceptions/AppException.cs基底例外クラス
Exceptions/ValidationException.cs入力検証エラー
Exceptions/NotFoundException.csリソース未検出エラー
Models/ErrorResponse.csエラーレスポンスモデル

生成プロセス:

  1. MCP ref を使用して、最新の ASP.NET Core 例外処理パターンを取得します
  2. 以下を含む GlobalExceptionMiddleware を生成します。
    • 例外型と HTTP ステータスのマッピング
    • 例外のロギング
    • ProblemDetails レスポンス形式
    • 環境に応じた詳細レベル
  3. カスタム例外クラスを生成します

登録コード:

app.UseMiddleware<GlobalExceptionMiddleware>();
Python の出力ファイル
ファイル用途
exceptions/app_exceptions.pyカスタム例外クラス
exceptions/handlers.pyFastAPI 例外ハンドラー
models/error_response.pyPydantic エラーモデル

生成プロセス:

  1. MCP ref を使用して、最新の FastAPI 例外処理パターンを取得します
  2. 以下を含む例外ハンドラーを生成します。
    • HTTPException の処理
    • カスタム AppException の処理
    • 入力検証エラーの処理
    • リクエスト検証エラーの処理
  3. カスタム例外クラスを生成します

登録コード:

app.add_exception_handler(AppException, app_exception_handler)
app.add_exception_handler(RequestValidationError, validation_exception_handler)

フェーズ 5:検証する

検証手順:

  1. 構文チェック:

    • .NET:dotnet build --no-restore
    • Python:python -m py_compile exceptions/handlers.py
  2. エラーハンドリングをテストする:

    • 例外をスローするテストエンドポイントを作成します
    • エラーレスポンス形式を確認します
    • Production でスタックトレースが非表示になっていることを確認します

エラーレスポンスの例(ProblemDetails):

{
  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
  "title": "Validation Error",
  "status": 400,
  "detail": "Invalid input data",
  "instance": "/api/users",
  "errors": [
    { "field": "email", "message": "Invalid email format" }
  ],
  "traceId": "abc-123-def-456"
}

コーディネーターへの返却

{
  "status": "success",
  "files_created": [
    "Middleware/GlobalExceptionMiddleware.cs",
    "Exceptions/AppException.cs",
    "Models/ErrorResponse.cs"
  ],
  "packages_added": [],
  "registration_code": "app.UseMiddleware<GlobalExceptionMiddleware>();",
  "message": "Configured global exception handling"
}

参照リンク


重要なルール

  • デフォルトで ProblemDetails(RFC 7807)を使用する — 標準化されたエラーレスポンス形式です
  • 本番環境ではスタックトレースを隠す — 環境に応じた詳細レベルの設定が必須です
  • 現在のパターンには MCP ref を使用する — 記憶を頼りにミドルウェアをハードコードしないでください
  • 冪等にする — GlobalExceptionMiddleware または exception_handlers.py が存在する場合は、status: "skipped" を返します
  • すべてのカスタム例外を HTTP ステータスコードにマッピングする — 未処理の例外型をクライアントに到達させないでください

完了の定義

  • コンテキストストアを受信済み(スタック、フレームワーク、環境)
  • MCP ツールを使用してエラー処理パターンを調査済み
  • GlobalExceptionMiddleware(.NET)または例外ハンドラー(Python)を生成済み
  • カスタム例外クラス(AppException、ValidationException、NotFoundException)を作成済み
  • エラーレスポンスモデル(ProblemDetails 形式)を作成済み
  • 構文を検証済み(dotnet build または py_compile)
  • 構造化 JSON レスポンスを ln-770 コーディネーターに返却済み

バージョン: 2.0.0 最終更新日: 2026-01-10

コメント