zoukankan      html  css  js  c++  java
  • ASP.NET webapi 全局异常过滤器

    创建一个异常处理类ExceptionAPIFilter,继承 IExceptionFilter  实现接口

    public class ExceptionAPIFilter : IExceptionFilter
        {
            public bool AllowMultiple => true;
    
            public Task ExecuteExceptionFilterAsync(HttpActionExecutedContext actionExecutedContext, CancellationToken cancellationToken)
            {
                var ex = actionExecutedContext.Exception.InnerException ?? actionExecutedContext.Exception;
                return Task.Run(() =>
                {
                    string controllerName = actionExecutedContext.ActionContext.ControllerContext.ControllerDescriptor.ControllerName;
                    string actionName = actionExecutedContext.ActionContext.ActionDescriptor.ActionName;
                    string param = actionExecutedContext.Request.Method.ToString();
                    //记录日志
                    LogFile.WriteErrorLog(DateTime.Now + string.Format(" Location:{0}/{1} Param:{2} UserIP:{3} Exception:{4}", controllerName, actionName, param, "", ex.Message));
                    ResultU result = new ResultU(false, 999, ex.Message);
                    string json = Newtonsoft.Json.JsonConvert.SerializeObject(result);
    
                    HttpResponseMessage httpResponse = new HttpResponseMessage();
                    HttpContent httpContent = new StringContent(json);
                    httpResponse.Content = httpContent;
                    actionExecutedContext.Response = httpResponse;
                });
            }
        }

    在 Global.asax 中注册 异常过滤器  OK

    //  API 全局异常过滤
                GlobalConfiguration.Configuration.Filters.Add(new ExceptionAPIFilter());
    

      

  • 相关阅读:
    Python安装appium 遇见的报错
    appium
    QQ邮箱/微信邮箱发送邮件
    Python-变量
    神秘的咒语
    宿命的PSS
    E. Congruence Equation
    D. Substring
    leetcode 761. Special Binary String
    F
  • 原文地址:https://www.cnblogs.com/shenghuotaiai/p/12311437.html
Copyright © 2011-2022 走看看