WebApi异常过滤器

 public override void OnException(HttpActionExecutedContext actionExecutedContext)
        {
            var x = actionExecutedContext.Exception;
            Trace.TraceError(x.ToString());
            actionExecutedContext.Response = new HttpResponseMessage(HttpStatusCode.OK);
            actionExecutedContext.Response.Content = new ObjectContent<ApiResult>(ApiResult.ret((int)ApiResult.enum_result.fail, filter(x.Message), null), new System.Net.Http.Formatting.JsonMediaTypeFormatter());

        }
private string filter(string m_strError)
        {
            if (string.IsNullOrEmpty(m_strError) || m_strError.ToLower().Equals("null"))
                return string.Empty;
            Regex reg = new Regex("ORA-(.+):");
            m_strError = reg.Replace(m_strError, "");
            reg = new Regex("at(.+)");
            m_strError = reg.Replace(m_strError, "");
            reg = new Regex("在 \"I~H~M~S2014_TG_LOGIN(.+)");
            m_strError = reg.Replace(m_strError, "");
            reg = new Regex("在 \"line(.+)");
            m_strError = reg.Replace(m_strError, "");
            reg = new Regex(@"\n \n 在 line 1");
            m_strError = reg.Replace(m_strError, "");
            reg = new Regex(@"\n(.+)");
            m_strError = reg.Replace(m_strError, "");
            return m_strError;
        }

 

posted @ 2020-07-11 07:08  王小鹏  阅读(341)  评论(0编辑  收藏  举报