ASP.NET Core Web API の堅牢なエラー管理
ASP.NET Core の例外処理は、以前の ASP.NET Web API とは大きく異なります。 このガイドでは、効果的なエラー管理のためのベスト プラクティスについて概説します。
例外処理フィルター: 出発点
例外処理フィルターは、コントローラー アクション内の例外を管理するのに便利ですが、アクション フィルターから発生する例外をキャプチャしません。 包括的なエラー処理には、IExceptionHandler
インターフェイスが重要です。
IExceptionHandler インターフェイスの利用
IExceptionHandler
は、コントローラーとアクション フィルターの両方から例外をキャプチャする、例外処理のためのグローバル メカニズムを提供します。
実装例:
<code class="language-csharp">using Microsoft.AspNetCore.Diagnostics; public class MyExceptionHandler : IExceptionHandler { public async ValueTask<bool> TryHandleAsync( HttpContext context, Exception exception, CancellationToken cancellationToken) { // Implement custom exception handling logic here. // Set appropriate HTTP status codes and response bodies. // ... return true; // Indicates the exception has been handled. } }</code>
ミドルウェア統合
IExceptionHandler
実装を作成したら、それを Startup
クラス内に登録します。
<code class="language-csharp">builder.Services.AddExceptionHandler<MyExceptionHandler>(); app.UseExceptionHandler(_ => { });</code>
複数の例外の処理
ASP.NET Core は、複数の IExceptionHandler
実装の登録をサポートしています。 登録の順序によって呼び出しシーケンスが決まります。 true
から TryHandleAsync
が返されると、例外が処理されたことを示します。それ以外の場合、例外は後続のハンドラーに伝播します。
以上がASP.NET Core Web API で例外を効果的に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。