ada*_*iko 10 asp.net asp.net-web-api
ASP.NET Web API中是否有任何方法可以将异常标记为ExceptionFilterAttribute中的处理?
我想在方法级别使用异常过滤器处理异常,并停止传播到全局注册的异常过滤器.
用于控制器操作的过滤器:
public class MethodExceptionFilterAttribute : ExceptionFilterAttribute
{
public override void OnException(HttpActionExecutedContext context)
{
if (context.Exception is NotImplementedException)
{
context.Response = new HttpResponseMessage(HttpStatusCode.InternalServerError)
{
Content = new StringContent(context.Exception.Message)
};
// here in MVC you could set context.ExceptionHandled = true;
}
}
}
Run Code Online (Sandbox Code Playgroud)
全球注册的过滤器:
public class GlobalExceptionFilterAttribute : ExceptionFilterAttribute
{
public override void OnException(HttpActionExecutedContext context)
{
if (context.Exception is SomeOtherException)
{
context.Response = new HttpResponseMessage(HttpStatusCode.SomethingElse)
{
Content = new StringContent(context.Exception.Message)
};
}
}
}
Run Code Online (Sandbox Code Playgroud)
尝试在本地处理结束时抛出HttpResponseException 。按照设计,它们不会被异常过滤器捕获。
throw new HttpResponseException(context.Response);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3294 次 |
| 最近记录: |