首页 > 其他 > 详细

HandleError Attribute

时间:2017-04-13 16:45:02      阅读:153      评论:0      收藏:0      [点我收藏+]

我们已经有很多方法在MVC中处理异常,比如用try catch,或者使用Filter,或者通过第三方库比如elmah。但是MVC也提供了一个HandleErrorAttribute去处理异常,如下:

  1. 技术分享
    技术分享
    [HandleError()]
    public ActionResult CheckError()
      {
         int a = 10;
         int b = 0;
         int k = a / b;
         return View();
      }
    技术分享
    技术分享

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

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

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

还可以根据异常类型的不同跳转到不同的错误界面。

  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();
           }
    技术分享
    技术分享

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

使用 handleError attribute 有以下局限: 

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

 

 技术分享

 

 

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

HandleError Attribute

原文:http://www.cnblogs.com/lushixiong/p/6704526.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!