在调用控制器操作之前,MVC 4 Web API上的自定义错误

时间:2013-07-31 17:52:54

标签: asp.net-mvc-4 asp.net-web-api

基于this文章,我实现了自己的ExceptionFilterAttribute并在GlobalConfiguration中注册了过滤器,以便在MVC 4 Web API中进行自定义异常处理。

但是,ExceptionFilterAttribute仅针对控制器操作中抛出的异常进行调用, 后,框架将解析该请求。

我还想在调用控制器操作之前为抛出的异常实现自定义错误处理。例如,DelegatingHandler中抛出的异常当前返回以下HTML:

<!DOCTYPE html>
<html>
    <head>
        <title>Exception of type 'System.Exception' was thrown.</title>
        ...

如果要为此方案返回自己的自定义错误,我需要做什么?

1 个答案:

答案 0 :(得分:1)

如果从您编写的过滤器生成DelegatingHandler异常,则可以添加另一个过滤器以“捕获”其中一些异常shown in this SO answer

正如您已经发现并在SO答案中记录的那样,您实际上“陷入”Web API管道的例外情况非常有限。我看到尝试执行您所描述的内容的唯一选择是将自定义HttpMessageHandler写为demonstrated in this good article