HandleError Attribute

咱们已经有不少方法在MVC中处理异常,好比用try catch,或者使用Filter,或者经过第三方库好比elmah。可是MVC也提供了一个HandleErrorAttribute去处理异常,以下:html

  1. 复制代码
    复制代码
    [HandleError()]
    public ActionResult CheckError()
      {
         int a = 10;
         int b = 0;
         int k = a / b;
         return View();
      }
    复制代码
    复制代码

在web.config文件中,咱们在<system.web>中添加以下两行:web

  1. <customErrors mode ="On" defaultRedirect ="Error.cshtml">
    </customErrors>

在shared文件夹下建立一个视图Error.cshtml,而后运行程序,若是运行上面的CheckError()方法,刚建立的Error.cshtml将会显示出来。ajax

还能够根据异常类型的不一样跳转到不一样的错误界面。mvc

  1. 复制代码
    复制代码
    [HandleError(ExceptionType=typeof(DivideByZeroException),View="尝试除以0的View")]
    [HandleError(ExceptionType = typeof(NullReferenceException), View = "引用null对象的View")]
    public ActionResult CheckError()
           {
               int a = 10;
               int b = 0;
               int k = a / b;
               return View();
           }
    复制代码
    复制代码

能够重写该特性进行错误日志记录!调用方式有两种:一、global全局注册,二、加在控制器或Action上

使用 handleError attribute 有如下局限: asp.net

1. 不支持exception记录
2. 没法捕捉到500以外的http exception
3. controller以外抛出的异常没法处理
4. ajax调用出现exception时,会将错误页面内容返回ide

 

 

 

 

http://www.cnblogs.com/powertoolsteam/archive/2015/08/13/4667892.html 学习asp.net mvc学习

相关文章
相关标签/搜索