• MVC异常处理的7大场景 + MVC的异常处理的过滤器 + 全局异常


    1.MVC中捕获异常的过滤器属性时[HandleError]

    2. 可以扩展这个属性来捕获异常

    3.注册这个过滤器

     4.Mvc的异常捕获时:Filter + 全局异常捕获

     5.异常处理的7大场景

    /// <summary>
    /// 异常处理在MVC中可以用过滤器属性[HandleError]实现--->利用Aop扩展这个属性
    ///
    /// 自定义异常处理--标记到方法---出现异常惠静如Filter---完成善后处理
    ///
    ///
    /// 全局注册的异常处理的Filter,7大场景会不会被Filter捕获异常
    /// 异常处理的7大场景:
    /// 1.Action出现异常,没有catch T
    /// 2.Action出现异常,catch了异常 F 异常被Action吃掉了
    /// 3.Action调用的底层Service异常 T 异常是冒泡的
    /// 4.Action正常,View里面异常 T 试图出现异常,就是View()方法异常
    /// 5.控制器构造时,出现异常 F 控制器实例化之后调用过滤器
    /// 6.URL地址里面的错误的Action F 因为找不到控制器和Action(IHttpHandler会实例化构造器并且找到对应的方法,之后才会去调用Filter),过滤器是在控制器实例化之后调用的
    /// 7.404任务地址异常 F 因为找不到控制器,过滤器是在控制器实例化之后调用的
    ///
    /// MVC的异常处理:Filter+全局异常
    /// </summary>

    5.1)Controller

    public class ThirdController : Controller
    {
    // GET: Third
    public ActionResult Index()
    {
    return View();
    }

    //[CustomHandleError]
    public ActionResult Info()
    {
    int i = 0;
    int j = 10 / i;
    return View();
    }

    public ActionResult ExceptionCatch()
    {
    try
    {
    int i = 0;
    int j = 10 / i;

    }
    catch (Exception ex)
    {
    Console.WriteLine(ex.Message);
    }
    return View();
    }

    public ActionResult ExceptionService()
    {
    new UserService().CheckUserState(123);
    return View();
    }

    public ActionResult ExceptionView()
    {
    new UserService().CheckUserState(123);
    return View();
    }

    }

    public class TestController : Controller
    {
    public TestController()
    {
    throw new Exception("构造异常");
    }
    // GET: Test
    public ActionResult Index()
    {
    return View();
    }
    }

    5.2)类库

     

     

  • 相关阅读:
    线性表的相关操作
    jq实现登陆页面的拖拽功能
    js实现登陆页面的拖拽功能
    HTML5存储
    js函数声明
    js打字机效果实现
    js日期显示效果
    js实现倒计时效果
    js中如何去获取外部css样式
    面向对象的几种方法详解(后)
  • 原文地址:https://www.cnblogs.com/fblogs/p/12296951.html
Copyright © 2020-2023  润新知