Car*_* R. 4 c# asp.net-web-api2
我有一堂课:
public class ApiExceptionFilterAttribute : ExceptionFilterAttribute,IExceptionFilter
{ public override void OnException(HttpActionExecutedContext context)
{
// ... etc...
}
}
Run Code Online (Sandbox Code Playgroud)
...我已在 global.asax.cs 中注册:
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
var exceptionFilter = new ApiExceptionFilterAttribute();
GlobalConfiguration.Configuration.Filters.Add(exceptionFilter);
}
}
Run Code Online (Sandbox Code Playgroud)
我的应用程序以各种方式抛出异常,在大多数情况下,我可以看到 OnException 方法正在按预期调用。但是,如果我的 Web Api 控制器方法抛出 HttpResponseException,则它似乎绕过了异常过滤器。我得到了按预期返回的响应,但这并不是因为异常过滤器正在执行的任何操作(未调用 OnException 方法)。
是什么导致我的异常过滤器出现这种“选择性”行为?如何确保对从控制器方法内抛出的所有异常调用 OnException?