• .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方法,然后就可以记录异常日志和发送邮件通知到相关人员了。

  • 相关阅读:
    面试汇总——说一下CSS盒模型
    各厂面试题汇总
    为网页背景添加一个跟随鼠标变幻的动态线条
    lnmp一键安装包
    java独立小程序实现AES加密和解密
    git命令note
    不可思议的纯 CSS 滚动进度条效果
    Git-Book
    CentOS搭建Git服务器及权限管理
    vim编辑器里shift + 3 出现高亮问题,怎么取消掉
  • 原文地址:https://www.cnblogs.com/dawenyang/p/9227901.html
Copyright © 2020-2023  润新知