http://geekswithblogs.net/SanjayU/archive/2009/11/06/error-handling-in-asp.net-mvc-1-1-of-a-3.aspx
在此网址中..
前两步可以解释一下吗?
System.Web.Mvc.dll附带了HandleErrorAttribute类,其中包含..等待它... HandleError属性。在本系列的后面部分中,此信息不重要,但HandleErrorAttribute类继承自FilterAttribute类,并实现IExceptionFilter接口 - 该接口需要具有以下签名的方法。
public virtual void OnException(ExceptionContext filterContext);
我是否需要创建界面?
我需要在哪里写OnExceptoin?
感谢
答案 0 :(得分:2)
您不需要创建任何接口,也不必担心OnException
方法或其实现。您需要做的就是用[HandleError]
属性装饰您的控制器,如下所示:
[HandleError]
public class HomeController : Controller {}
然后继续在此控制器中写入一些可能引发异常的操作,而不是YSOD(黄色死亡屏幕),您将看到一个已配置的自定义错误页面。您还需要在web.config中激活自定义错误:
<system.web>
<customErrors mode="On" />
</system.web>
默认情况下,如果发生异常,将呈现~/Views/Shared/Error.aspx
视图。您可以根据抛出的异常定义特定的错误视图:
[HandleError(ExceptionType = typeof(ApplicationException), View = "AppErrorPage")]
表示如果抛出ApplicationException
,则会呈现~/Views/Shared/AppErrorPage.aspx
视图。
这就是框架为您提供开箱即用的功能。如果这不足以满足您的需求并且在您的特定方案中无效,您可能会开始担心实施自定义IExceptionFilter
。