在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格式的響應。這樣,前端可以更容易地處理錯誤信息。