如果在MVC中的授权过滤器中发生异常

时间:2015-10-12 10:05:20

标签: c# asp.net-mvc asp.net-mvc-4 model-view-controller

在我最近的采访中,面试官问了像

这样的问题

如果授权过滤器中发生异常,程序流如何发生?是否会直接转到异常过滤器,或者依次在动作过滤器中过滤结果过滤器和异常过滤器。

我说它会直接进入异常过滤器。但面试官对我的回答并不好。有什么建议?

我知道mvc过滤器执行顺序。

1.Authorization 2.Action 3. Result 4.Exception我们也可以设置每个过滤器的顺序。

但是,如果上述任何一个过滤器出现异常,接下来会发生什么?它是否会直接转到异常过滤器跳过结果过滤器,否则它会顺序进行。

我用谷歌搜索但没有明确的想法。请指导我更正链接而不进行投票。

1 个答案:

答案 0 :(得分:0)

我认为面试官可能一直在寻找答案,以便在例外情况下使用覆盖

protected override void OnException(ExceptionContext filterContext)
{ 
  Exception exception = filterContext.Exception;
  //Logging the Exception
  filterContext.ExceptionHandled = true;


  var Result = this.View("Error", new HandleErrorInfo(exception,
   filterContext.RouteData.Values["controller"].ToString(),
   filterContext.RouteData.Values["action"].ToString()));

  filterContext.Result = Result;

 }