WebAPI添加全局异常过滤

在App_Start文件夹下的WebApiConfig.cs中加入如下代码:

复制代码
  public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            // Web API 配置和服务

            // Web API 路由
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{action}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
            //全局异常过滤
            config.Filters.Add(new ApiExceptionAttribute());
        }
    }
复制代码

新建ApiExceptionAttribute类:

复制代码
public class ApiExceptionAttribute : ExceptionFilterAttribute
    {
        /// <summary>
        /// 控制器方法中出现异常,会调用该方法捕获异常
        /// </summary>
        /// <param name="filterContext">提供使用</param>
        public override void OnException(HttpActionExecutedContext filterContext)
        {

            HttpResponseMessage result = new HttpResponseMessage();
            result.Content = new StringContent(filterContext.Exception.Message);
            result.StatusCode = (HttpStatusCode)999;
            filterContext.Response = result;
            base.OnException(filterContext);
        }
    }
复制代码

 

posted @   李国将  阅读(143)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示