Exemple #1
0
        /// <summary>
        /// ErrorJsonResultException 日志
        /// </summary>
        /// <param name="ex"></param>
        public static void ErrorJsonResultExceptionLog(ErrorJsonResultException ex)
        {
            if (!Config.IsDebug)
            {
                return;
            }

            LogBegin("[[ErrorJsonResultException]]");
            Log("ErrorJsonResultException");
            Log("AccessTokenOrAppId:{0}", ex.AccessTokenOrAppId ?? "null");
            Log("URL:{0}", ex.Url);
            Log("errcode:{0}", ex.JsonResult.errcode);
            Log("errmsg:{0}", ex.JsonResult.errmsg);

            if (OnWeixinExceptionFunc != null)
            {
                try
                {
                    OnWeixinExceptionFunc(ex);
                }
                catch
                {
                }
            }

            LogEnd();
        }
Exemple #2
0
        /// <summary>
        /// 获取Post结果
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="returnText"></param>
        /// <returns></returns>
        public static T GetResult <T>(string returnText)
        {
            if (returnText.Contains("errcode"))
            {
                //可能发生错误
                WxJsonResult errorResult = SerializerHelper.GetObject <WxJsonResult>(returnText);

                ErrorJsonResultException ex = null;
                if (errorResult.errcode != ReturnCode.请求成功)
                {
                    //发生错误,记录异常
                    ex = new ErrorJsonResultException(
                        string.Format("微信Post请求发生错误!错误代码:{0},说明:{1}",
                                      (int)errorResult.errcode,
                                      errorResult.errmsg),
                        null, errorResult);
                }

                if (Config.ThrownWhenJsonResultFaild && ex != null)
                {
                    throw ex;//抛出异常
                }
            }

            T result = SerializerHelper.GetObject <T>(returnText);

            //TODO:加入特殊情况下的回调处理

            return(result);
        }
Exemple #3
0
        /// <summary>
        /// ErrorJsonResultException 日志
        /// </summary>
        /// <param name="ex"></param>
        public static void ErrorJsonResultExceptionLog(ErrorJsonResultException ex)
        {
            if (!Config.IsDebug)
            {
                return;
            }

            LogBegin("[[ErrorJsonResultException]]");
            LogBegin("ErrorJsonResultException");
            Log("AppNameAndClient:{0},{1}", ex.AppName, ex.ClientId);
            Log("URL:{0}", ex.Url);
            Log("errcode:{0}", ex.JsonResult.code);
            Log("errmsg:{0}", ex.JsonResult.message);

            if (OnWishExceptionFunc != null)
            {
                try
                {
                    OnWishExceptionFunc(ex);
                }
                catch
                {
                }
            }

            LogEnd();
        }
Exemple #4
0
        /// <summary>
        /// ErrorJsonResultException 日志
        /// </summary>
        /// <param name="ex"></param>
        public static void ErrorJsonResultExceptionLog(ErrorJsonResultException ex)
        {
            if (!WxConfig.IsDebug)
            {
                return;
            }

            using (var traceItem = new TraceItem(LogTrace._logEndActon, "ErrorJsonResultException"))
            {
                traceItem.Log("ErrorJsonResultException");
                traceItem.Log("AccessTokenOrAppId:{0}", ex.AccessTokenOrAppId ?? "null");
                traceItem.Log("URL:{0}", ex.Url);
                traceItem.Log("errcode:{0}", ex.JsonResult.ErrorCodeValue);
                traceItem.Log("errmsg:{0}", ex.JsonResult.errmsg);
            }

            if (OnWeixinExceptionFunc != null)
            {
                try
                {
                    OnWeixinExceptionFunc(ex);
                }
                catch
                {
                }
            }
        }
Exemple #5
0
 private void InvokeAndHandleException(Action action)
 {
     try
     {
         action();
     }
     catch (Exception ex)
     {
         if (ex is WeixinException)
         {
             if (ex is ErrorJsonResultException)
             {
                 ErrorJsonResultException ex2 = ex as ErrorJsonResultException;
                 this.ShowMsg(ex2.JsonResult.errcode.ToString(), false);
                 goto end_IL_000f;
             }
             if (ex is MessageHandlerException)
             {
                 MessageHandlerException ex3 = ex as MessageHandlerException;
                 this.ShowMsg(ex3.Message, false);
                 goto end_IL_000f;
             }
             if (ex is UnknownRequestMsgTypeException)
             {
                 UnknownRequestMsgTypeException ex4 = ex as UnknownRequestMsgTypeException;
                 this.ShowMsg(ex4.Message, false);
                 goto end_IL_000f;
             }
             if (ex is WeixinMenuException)
             {
                 WeixinMenuException ex5 = ex as WeixinMenuException;
                 this.ShowMsg(ex5.Message, false);
                 goto end_IL_000f;
             }
         }
         if (!(ex is ThreadAbortException))
         {
             NameValueCollection param = new NameValueCollection
             {
                 this.Page.Request.Form,
                 this.Page.Request.QueryString
             };
             Globals.WriteExceptionLog_Page(ex, param, "AdminError");
             this.ShowMsg(ex.Message, false);
         }
         end_IL_000f :;
     }
 }
Exemple #6
0
        /// <summary>
        /// ErrorJsonResultException 日志
        /// </summary>
        /// <param name="ex"></param>
        public static void ErrorJsonResultExceptionLog(ErrorJsonResultException ex)
        {
            if (!Config.IsDebug)
            {
                return;
            }

            LogBegin("ErrorJsonResultException");
            Log(string.Format("URL:{0}", ex.Url));
            Log(string.Format("errcode:{0}", ex.JsonResult.errcode));
            Log(string.Format("errmsg:{0}", ex.JsonResult.errmsg));
            LogEnd();

            if (OnErrorJsonResultExceptionFunc != null)
            {
                OnErrorJsonResultExceptionFunc(ex);
            }
        }
Exemple #7
0
        /// <summary>
        /// 转换异常为输出json实体
        /// </summary>
        /// <param name="ex"></param>
        /// <returns></returns>
        public static EGExceptionResult ConvertException(Exception ex)
        {
            EGExceptionResult ActionResult = new EGExceptionResult();

            //EG定制异常
            if (ex is EG.WeChat.Utility.Tools.EGException)
            {
                if ((ex as EG.WeChat.Utility.Tools.EGException) != null)
                {
                    ActionResult = (ex as EG.WeChat.Utility.Tools.EGException).JsonResult;
                }
            }
            //Senparc SDK报错异常
            else if (ex is Senparc.Weixin.Exceptions.ErrorJsonResultException)
            {
                if ((ex as Senparc.Weixin.Exceptions.ErrorJsonResultException) != null)
                {
                    ErrorJsonResultException pEx = (ex as Senparc.Weixin.Exceptions.ErrorJsonResultException);
                    ActionResult.Message   = pEx.JsonResult.errmsg;
                    ActionResult.IsSuccess = false;
                    var code = Enum.GetName(typeof(Senparc.Weixin.ReturnCode), pEx.JsonResult.errcode);
                    if (code == null)
                    {
                        ActionResult.ExCode = "9999";
                    }
                    else
                    {
                        ActionResult.ExCode = code.ToString();
                    }
                }
            }
            //其他异常,未来可在这扩展其他异常
            else
            {
                EGExceptionResult pResult = new EGExceptionResult();
                pResult.ExCode    = ((int)EGActionCode.未知错误).ToString();
                pResult.IsSuccess = false;
                pResult.Message   = ex.Message;

                ActionResult = pResult;
            }
            return(ActionResult);
        }