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); } }
浙公网安备 33010602011771号