C# 如果MVC中的授权筛选器发生异常
在我最近的采访中,采访者问了这样的问题 如果授权过滤器中出现异常,程序流是如何发生的?它是直接进入异常过滤器,还是依次进入操作过滤器、结果过滤器和异常过滤器 我说它将直接进入异常过滤器。但面试官对我的回答不满意。有什么建议吗 我知道mvc过滤器执行命令 1.授权2.行动3。结果4.我们还可以设置每个过滤器的顺序 但如果上述任何一个过滤器出现异常,接下来会发生什么?它将直接转到异常筛选器跳过结果筛选器还是按顺序转到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.我们还可以设置每个过滤器的顺序 但如果上述任何一个过滤器出现异常,接下来会发生什么?它将直接转到异常筛选器跳过结果筛选器还是按顺序转到 我在谷歌上搜索了一下,但没有弄清楚。请指示我在没有向下投票的情况下更正链接。我认为
我在谷歌上搜索了一下,但没有弄清楚。请指示我在没有向下投票的情况下更正链接。我认为面试官可能一直在寻找一个答案,以便您在例外情况上使用覆盖
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之前,将调用该异常。您的答案完全正确。如果在任何其他筛选器中发生任何异常,程序流将进入异常筛选器。