zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    用户 'IIS APPPOOLPrivate' 登录失败。
    WCF 内置跟踪日志
    Ionic3 下拉刷新
    Ionic3 组件懒加载
    Ionic3 编程-应用启动进入引导页
    mysql数据库导入导出
    PHP-生成二维码(qr-code)
    javascript 总结(常用工具类的封装)
    Ajax跨域原理及解决方案
    封装获取连续数字的拼接
  • 原文地址:https://www.cnblogs.com/lushixiong/p/6704526.html
Copyright © 2011-2022 走看看