【问题标题】:How to handle an ASP.NET MVC ActionResult Exception?如何处理 ASP.NET MVC ActionResult 异常?
【发布时间】:2012-07-31 13:35:58
【问题描述】:

我有一个自定义 ActionResult,当远程主机关闭连接时,它会更深入地遇到 System.Web.HttpException。我已经覆盖了控制器的 OnException 方法,但它没有被抓住。 ASP.NET MVC 管道已经执行完我的 Controller 的 Action,现在正在执行返回的 ActionResult,当它遇到这个异常时。

目前,它正在冒泡并将我的日志作为一个错误而混乱。我不想在记录时过滤掉这些,因为我不认为远程主机中止内容下载是错误的。

我宁愿直接处理这个错误,但我不知道在哪里。 Controller.OnException 不起作用,所以我怀疑 IExceptionFilter 也不会。我可以使用 Application_OnError 但我担心它太高了。

难道没有更 MVC 的方式吗?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-2


    【解决方案1】:

    在 Controller.OnException 和 Application_OnError 之间没有其他点可以捕获异常。勇敢地使用 Application_OnError

    【讨论】:

      【解决方案2】:

      您可以使用HandleErrorAttribute 来处理控制器操作中抛出的异常。正如您在问题中指出的那样,我怀疑该错误超出了此属性的范围。那将只留下 Application_OnError。

      您可以将白名单添加到错误处理代码中以忽略特定错误(具有特定代码的特定类型,可能还有特定源/堆栈跟踪)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-02-02
        • 1970-01-01
        • 2012-05-04
        • 1970-01-01
        • 2017-08-20
        • 2012-09-17
        • 2020-09-10
        相关资源
        最近更新 更多