在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>();
// ... 其他中间件配置 ...
}
现在,当应用程序中发生异常时,JsonExceptionFilter
中间件将捕获异常并将其转换为JSON格式的响应。这样,前端可以更容易地处理错误信息。