在ASP.NET Core中,处理异常的方法与之前的ASP.NET版本有所不同。在ASP.NET Core中,我们通常使用中间件来处理异常。下面是一个简单的示例,展示了如何在ASP.NET Core中创建一个中间件来处理JSON格式的异常。
- 首先,创建一个自定义异常过滤器类,该类需要继承
IExceptionFilter
接口:
using Microsoft.AspNetCore.Mvc; using System.Threading.Tasks; public class JsonExceptionFilter : IExceptionFilter { public Task OnExceptionAsync(ExceptionContext context) { if (context.ExceptionHandled || !context.HttpContext.Request.IsAjaxRequest()) { return Task.CompletedTask; } context.Result = new JsonResult(new { success = false, message = context.Exception.Message }); context.ExceptionHandled = true; context.HttpContext.Response.ContentType = "application/json"; return Task.CompletedTask; } }
- 在
Startup.cs
文件中,将自定义异常过滤器添加到ExceptionMiddleware
之前的全局中间件管道中:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // ... 其他中间件配置 ... app.UseMiddleware(); // ... 其他中间件配置 ... }
现在,当应用程序中发生异常时,JsonExceptionFilter
中间件将捕获异常并将其转换为JSON格式的响应。这样,前端可以更容易地处理错误信息。