在我最近的采访中,面试官问了像
这样的问题如果授权过滤器中发生异常,程序流如何发生?是否会直接转到异常过滤器,或者依次在动作过滤器中过滤结果过滤器和异常过滤器。
我说它会直接进入异常过滤器。但面试官对我的回答并不好。有什么建议?
我知道mvc过滤器执行顺序。
1.Authorization 2.Action 3. Result 4.Exception我们也可以设置每个过滤器的顺序。
但是,如果上述任何一个过滤器出现异常,接下来会发生什么?它是否会直接转到异常过滤器跳过结果过滤器,否则它会顺序进行。
我用谷歌搜索但没有明确的想法。请指导我更正链接而不进行投票。答案 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;
}