从传统 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中文网其他相关文章!