zoukankan      html  css  js  c++  java
  • Netcore使用Filter来实现接口的全局异常拦截

    public class MyException : Attribute, IExceptionFilter
        {
            private readonly ILogger<MyException> _logger;
    
            public MyException(ILogger<MyException> logger)
            {
                _logger = logger;
            }
            public void OnException(ExceptionContext context)
            {
                if (!context.ExceptionHandled)
                {
                    //写入日志
                    _logger.LogError($"出错:{context.Exception.Message}");
    
                    //定义返回信息
                    var res = new
                    {
                        Code = 500,
                        Message = "发生错误,请联系管理员"
                    };
                    context.Result = new ContentResult
                    {
                        // 返回状态码设置为200,表示成功
                        StatusCode = StatusCodes.Status200OK,
                        // 设置返回格式
                        //ContentType = "application/json;charset=utf-8",
                        //Content = JsonConvert.SerializeObject(res)
                        ContentType = "text/html;charset=utf-8",
                        Content = $"<h2 style='color:red'>发生错误 :{context.Exception.Message}</h2>"
                    };
                    context.ExceptionHandled = true;
                }
            }
        }
      services.AddControllersWithViews(options=>
                {
                    options.Filters.Add(typeof(MyException));
                });
  • 相关阅读:
    树世界
    清空 NumericUpDown
    没有评论的日子
    GetData.cs

    Hashtable 在程序中控制重复项
    Convert.ToInt32() VS System.Int32.Parse()
    饮食九要素
    添加 or 修改 的一个处理方式
    一个关于 电话号码 的正则表达式
  • 原文地址:https://www.cnblogs.com/lunawzh/p/14824373.html
Copyright © 2011-2022 走看看