zoukankan      html  css  js  c++  java
  • .NET Core[MVC] 利用特性捕捉异常

    声明:本方式适用于MVC。本代码只适用于.NET Core MVC.

    先创建一个类继承ExceptionFilterAttribute这个抽象类,并override它的方法OnException。

    代码如下:

        /// <summary>
        /// 处理错误信息
        /// </summary>
        public class ErrorHandleAttribute : ExceptionFilterAttribute
        {
            public override void OnException(ExceptionContext filterContext)
            {
                //获取异常信息,入库保存
                var exception = filterContext.Exception;
                var controllerName = filterContext.RouteData.Values["controller"].ToString();
                var actionName = filterContext.RouteData.Values["action"].ToString();
                var msg = $"出错位置:{controllerName}/{actionName}----出错时间:{DateTime.Now:yyyy-MM-dd HH:mm:ss:fff}";
                Log4NetHelp.Error(msg, exception);//记录异常日志到本地磁盘
                filterContext.Result = new RedirectResult("/Home/Error");
                EmailHelper.SendMail(exception);//发送邮件通知到相关人员
                base.OnException(filterContext);
            }
        }

    如何使用呢?

    只需要在需要捕捉异常的控制器加上[ErrorHandle]即可。

    例如:

        [ErrorHandle]
        public abstract class AdminControllerBase : Controller
        {
              //代码逻辑
        }

    如果继承AdminControllerBase或者带有[ErrorHandle]特性的类和方法出现了错误,都会执行OnException方法,然后就可以记录异常日志和发送邮件通知到相关人员了。

  • 相关阅读:
    C语言计时
    time模块
    大端对齐 和小端对齐
    python之生成器与迭代器
    python之字符串反转
    简单排序
    Python学习笔记——切片
    Python学习笔记——函数(二)
    Python学习笔记——函数(一)
    Python学习笔记——字典(dict)
  • 原文地址:https://www.cnblogs.com/dawenyang/p/9227901.html
Copyright © 2011-2022 走看看