従来の ASP.NET Web API から ASP.NET Core への移行により、例外管理に課題が生じました。 明確な解決策がなかったため、当初は混乱が生じました。 カスタム例外フィルターは一般的な回避策ですが、例外が承認フィルター内で発生した場合には不十分であることが判明しました。
ASP.NET Core 8 は、IExceptionHandler
インターフェイスを介して合理化されたソリューションを提供します。このインターフェイスにより、開発者はカスタム例外処理ロジックを作成し、必要な依存関係をシームレスに統合できます。
IExceptionHandler
実装の実際的な例を次に示します。
<code class="language-csharp">public class MyExceptionHandler : IExceptionHandler { public async ValueTask<bool> TryHandleAsync( HttpContext context, Exception exception, CancellationToken cancellationToken) { var errorResponse = new { message = exception.Message }; await context.Response.WriteAsJsonAsync(errorResponse, cancellationToken); return true; } }</code>
このハンドラーを登録するには、次のミドルウェアを追加する必要があります:
<code class="language-csharp">builder.Services.AddExceptionHandler<MyExceptionHandler>(); app.UseExceptionHandler(_ => { });</code>
IExceptionHandler
ASP.NET Core の例外処理は以前のものとは異なりますが、IExceptionHandler
は、アプリケーションまたはそのフィルター内で発生した例外に関係なく、すべての例外を効果的に管理するための堅牢で簡単な方法を提供します。
以上がASP.NET Core 8 Web API で例外を効果的に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。