NetCore 全局异常过滤器
第一步:创建过滤器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | /// <summary> /// 全局异常过滤器 /// 调用示例:throw new NotImplementedException(); /// </summary> public class GlobalExceptionFilter : IExceptionFilter { readonly IWebHostEnvironment hostEnvironment; public GlobalExceptionFilter(IWebHostEnvironment _hostEnvironment) { this .hostEnvironment = _hostEnvironment; } public void OnException(ExceptionContext context) { if (!context.ExceptionHandled) //如果异常没有处理 { var result = ResponseMessage.Error( "服务器发生未处理的异常" ); if (hostEnvironment.IsDevelopment()) { result.Message += "," + context.Exception.Message; result.Data = context.Exception.StackTrace; } context.Result = new JsonResult(result); context.ExceptionHandled = true ; //异常已处理 } } } |
第二步:配置过滤器
1 2 3 4 5 | builder.Services.AddControllers(option => { option.Filters.Add<GlobalExceptionFilter>(); } ); |
第四步:异常示例
1 2 3 4 5 | [HttpGet( "{id}" )] public ActionResult Get( int id) { throw new NotImplementedException(); } |
第五步:运行结果
分类:
Asp.Net Core
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?