C# 如果MVC中的授权筛选器发生异常

C# 如果MVC中的授权筛选器发生异常,c#,asp.net-mvc,asp.net-mvc-4,model-view-controller,C#,Asp.net Mvc,Asp.net Mvc 4,Model View Controller,在我最近的采访中,采访者问了这样的问题 如果授权过滤器中出现异常,程序流是如何发生的?它是直接进入异常过滤器,还是依次进入操作过滤器、结果过滤器和异常过滤器 我说它将直接进入异常过滤器。但面试官对我的回答不满意。有什么建议吗 我知道mvc过滤器执行命令 1.授权2.行动3。结果4.我们还可以设置每个过滤器的顺序 但如果上述任何一个过滤器出现异常,接下来会发生什么?它将直接转到异常筛选器跳过结果筛选器还是按顺序转到 我在谷歌上搜索了一下,但没有弄清楚。请指示我在没有向下投票的情况下更正链接。我认为

在我最近的采访中,采访者问了这样的问题

如果授权过滤器中出现异常,程序流是如何发生的?它是直接进入异常过滤器,还是依次进入操作过滤器、结果过滤器和异常过滤器

我说它将直接进入异常过滤器。但面试官对我的回答不满意。有什么建议吗

我知道mvc过滤器执行命令

1.授权2.行动3。结果4.我们还可以设置每个过滤器的顺序

但如果上述任何一个过滤器出现异常,接下来会发生什么?它将直接转到异常筛选器跳过结果筛选器还是按顺序转到


我在谷歌上搜索了一下,但没有弄清楚。请指示我在没有向下投票的情况下更正链接。

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

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;

 }

重写异常有什么用。请提供完整的详细信息。在应用程序级别(而不是方法级别)的任何本地try-catch和sit之前,将调用该异常。您的答案完全正确。如果在任何其他筛选器中发生任何异常,程序流将进入异常筛选器。