• HandleError Attribute


    我们已经有很多方法在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

  • 相关阅读:
    邻接矩阵
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
  • 原文地址:https://www.cnblogs.com/lushixiong/p/6704526.html
Copyright © 2020-2023  润新知