我在MVC 3应用程序中创建了自定义异常处理程序,遗憾的是,如果抛出异常,它永远不会被命中。我错过了什么吗?
自定义例外过滤器
public class ExceptionFilter : IExceptionFilter
{
public void OnException(ExceptionContext filterContext)
{
//Never executed
}
}
在Global.asax.cx中注册过滤器
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new ExceptionFilter()); //must be before HandleErrorAttribute
filters.Add(new HandleErrorAttribute());
}
的Web.config
<customErrors mode="RemoteOnly" defaultRedirect="/error/default">
<error statusCode="404" redirect="/error/pagenotfound" />
</customErrors>
答案 0 :(得分:0)
如果您通过导航到缺失的页面进行测试,那么它真正发生的是它尝试解析控制器并且您得到一个未处理的异常,抛出500.添加一个并且您应该能够捕获其他错误。