/// <summary> /// 创建一个EtpException实例,该实例封装Etp返回的错误消息。 /// </summary> /// <param name="code">主错误码。</param> /// <param name="description">主错误描述。</param> /// <param name="subCode">子错误码。</param> /// <param name="subDescription">子错误描述。</param> public EtpException Create(string code, string description, string subCode = "", string subDescription = "") { EtpException etpException = null; int errCode; if (int.TryParse(code, out errCode)) { //根据不同的错误类型创建不同的异常对象 if (((errCode > 100 || errCode == 15) && subCode.StartsWith("isv.")) || errCode == 40 || errCode == 41) { //业务级异常 etpException = EtpException.CreateBusinessException(); } else if (((errCode < 100) && (!(errCode == 15 || errCode == 40 || errCode == 41)))) { //一般是由于用户的请求不符合各种基本校验而引起的。用户遇到这些错误的返回首先检查应用的权限、频率等情况,然后参照文档检验一下传入的参数是否完整且合法. etpException = EtpException.CreatePlatformException(false); } else if (subCode.StartsWith("isp.")) { //一般是由于服务端异常引起的。用户遇到这类错误需要隔一段时间再重试就可以解决。 etpException = EtpException.CreatePlatformException(true); } else { etpException = EtpException.CreateApplicationException(); } } else { etpException = EtpException.CreateBusinessException(); } etpException.SetError(code, description); etpException.SetSubError(subCode, subDescription); return etpException; }
/// <summary> /// 创建一个EtpException实例,该实例封装Etp返回的错误消息。 /// </summary> /// <param name="code">主错误码。</param> /// <param name="description">主错误描述。</param> /// <param name="subCode">子错误码。</param> /// <param name="subDescription">子错误描述。</param> public EtpException Create(string code, string description, string subCode = "", string subDescription = ""){ EtpException etpException = null; int error_code; if (code == "0000001") { //平台级异常 etpException = EtpException.CreatePlatformException(true); } else if (code.StartsWith("00")) { //平台级异常 etpException = EtpException.CreatePlatformException(false); } else if (int.TryParse(code, out error_code)) { etpException = EtpException.CreateBusinessException(); } else { //应用级异常 etpException = EtpException.CreateApplicationException(); } //设置主错误信息 etpException.SetError(code, description); //设置子错误信息 etpException.SetSubError(subCode, subDescription); return etpException; }
/// <summary> /// 创建一个EtpException实例,该实例封装Etp返回的错误消息。 /// </summary> /// <param name="code">主错误码。</param> /// <param name="description">主错误描述。</param> /// <param name="subCode">子错误码。</param> /// <param name="subDescription">子错误描述。</param> public EtpException Create(string code, string description, string subCode = "", string subDescription = "") { EtpException etpException = null; //通过code判断不同级别EtpException实例 if (code == "invalid_request") { etpException = EtpException.CreateApplicationException(); } else if (subCode.Contains("090008")) { etpException = EtpException.CreatePlatformException(true); } else if (code == "403" || code == "400" || code == "unauthorized_client" || code == "401") { etpException = EtpException.CreatePlatformException(false); } else { etpException = EtpException.CreateBusinessException(); } etpException.SetError(code, description); etpException.SetSubError(subCode, subDescription); return etpException; }
/// <summary> /// 创建一个EtpException实例,该实例封装Etp返回的错误消息。 /// </summary> /// <param name="code">主错误码。</param> /// <param name="description">主错误描述。</param> /// <param name="subCode">子错误码。</param> /// <param name="subDescription">子错误描述。</param> public EtpException Create(string code, string description, string subCode = "", string subDescription = "") { EtpException etpException = null; //平台级 if (_platformErrorCode.Contains(code)) { etpException = EtpException.CreatePlatformException(true); etpException.SetError(code, description); etpException.SetSubError(subCode, subDescription); } //应用级 else if (_appErrorCode.Contains(code)) { etpException = EtpException.CreateApplicationException(); etpException.SetError(code, description); etpException.SetSubError(subCode, subDescription); } //业务级 else if (_businessErrorCode.Contains(code)) { etpException = EtpException.CreateBusinessException(); etpException.SetError(code, description); etpException.SetSubError(subCode, subDescription); } return etpException; }