從傳統 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中文網其他相關文章!