我仍然对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
{
}
}
}
答案 0 :(得分:0)
我认为你的过滤器中的OnError()方法不会得到异常,因为你的catch块已经处理过它,除非在catch中再次抛出异常(或新的异常)。
ErrorHandelingFilter中的OnError或Controller上的OnException方法(SomeController继承者的类)只会处理控制器中操作的未处理异常。