0

我仍然对HandleError属性/操作过滤器处理哪些类型的错误感到困惑。

例如,在下面的代码中,假设我将HandleError过滤器定义为我的 MVC 4 应用程序的全局操作过滤器。

我在下面的 try catch 块中捕获的异常是否会到达操作过滤器的OnError处理程序?HandleError

public class SomeController : Controller
{
    public ActionResult SomeAction()
    {
        new SomeBusinessLogicComponentInTheMVCProject().DoSomething();
        return View();
    }
}

public class SomeBusinessLogicComponentInTheMVCProject
{
    public void DoSomething()
    {
        try
        {
        }
        catch (Exception ex)
        {
            // Will the HandleError filter's OnError 
            // handler catch this exception?
        }
        finally
        {
        }
    }
}
4

1 回答 1

0

我想你的过滤器中的 OnError() 方法不会得到异常,因为你的 catch 块已经处理了它,除非在 catch 中再次抛出异常(或新异常)。

ErrorHandelingFilter 中的 OnError 或 Controller 上的 OnException 方法(您的 SomeController 继承自的类)都只会处理来自控制器中的操作的那些未处理的异常。

于 2013-06-20T05:16:15.537 回答