Net8添加全局异常过滤器
一、 新建一个帮助类, ExceptionFilterAttribute.cs , 使其继承于属性和异常接口,Attribute, IExceptionFilter
/// <summary>
/// 全局异常过滤器
/// </summary>
public class ExceptionFilterAttribute : Attribute, IExceptionFilter
{
/// <summary>
/// OnException
/// </summary>
/// <param name="context"></param>
/// <exception cref="NotImplementedException"></exception>
public void OnException(ExceptionContext context)
{
var msg = context.Exception.Message;
//这里如果不想显示特定的错误给前台调用者, 可以定制错误输出到前台调用者
if (msg.Contains("SqlServer"))
{
Console.WriteLine(msg);
msg = "连接数据库失败";
}
//MyResults 是统一返回结果的格式类,自行建立一个。
context.Result = new JsonResult(MyResults.FailResult(msg));
}
}二、进入Program.cs里添加全局过滤器
//里面添加全局过滤器
builder.Services.AddControllers(p => {
//全局异常过滤器
p.Filters.Add<ExceptionFilterAttribute>();
});这样再异常时输出的格式就统一了























