在这篇关于 ASP.NET Web API 中的异常处理的帖子之后,我创建了一个ExceptionFilterAttribute
如下所示的内容:
public class NotImplExceptionFilterAttribute : ExceptionFilterAttribute
{
public override void OnException(HttpActionExecutedContext context)
{
if (context.Exception is NotImplementedException)
{
context.Response = new HttpResponseMessage(HttpStatusCode.NotImplemented);
}
}
}
...和一个如下所示的 ASP.NET Web API 控制器:
public class ProductsController : ApiController
{
[NotImplExceptionFilter]
public string Get()
{
throw new NotImplementedException("This method is not implemented");
}
}
问题是context.Exception
,无论我在. 因此,语句中的代码永远不会被执行。异常的属性是:System.Web.Http.HttpResponseException
ActionMethod
if
Message
处理 HTTP 请求导致异常。有关详细信息,请参阅此异常的“响应”属性返回的 HTTP 响应。
消息中引用的Response
属性是500 Internal Server Error
.
我的路线配置正确,因为ActionMethod
确实受到了打击。我没有ExceptionFilterAttribute
应用任何其他过滤器。
知道如何context.Exception
才能真正引用引发的异常吗?