/// <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(); }
/// <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); }
/// <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(); }
/// <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 { } } }
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 :; } }
/// <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); } }
/// <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); }