一、 新建一个帮助类, 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>(); });
这样再异常时输出的格式就统一了