WebApi异常过滤器(ExceptionFilter)
1、安装依赖包
vscode
dotnet add package Microsoft.AspNetCore.Mvc.Abstractions --version 2.2.0
vs2022
Install-Package Microsoft.AspNetCore.Mvc.Abstractions -Version 2.2.0
Install-Package Microsoft.AspNetCore.Mvc.Core -Version 2.2.5
2、自定义异常过滤器
public class MyExceptionFilter : IAsyncExceptionFilter
{
public Task OnExceptionAsync(ExceptionContext context)
{
//异常信息
//context.Exception
ObjectResult result = new ObjectResult(new { code = 500, message = "服务器发生异常" });
result.StatusCode = 500;
context.ExceptionHandled = true;
context.Result = result;
return Task.CompletedTask;
}
}
3、在StartUp中添加依赖(3.1)
ConfigureServices中
services.Configure<MvcOptions>(options =>
{
options.Filters.Add<MyExceptionFilter>();
});
4、在Program中添加依赖(.net6)
builder.Services.Configure<MvcOptions>(options =>
{
options.Filters.Add<MyExceptionFilter>();
});