using System; using WMS.Info; namespace WMS.Core { public class SysExCore : Exception { /// /// 异常消息 /// public string ExMsg { get; private set; } /// /// 内部异常 /// public Exception Ex { get; private set; } /// /// 消息类型 /// public ESysExType SysExType { get; private set; } = ESysExType.Exception; //带有一个字符串参数和一个内部异常信息参数的构造函数 public SysExCore(ESysExType sysExType, string exMsg, Exception innerException) : base(exMsg, innerException) { Ex = innerException; ExMsg = exMsg; SysExType = sysExType; } public SysExCore(ESysExType sysExType, string exMsg) : base(exMsg) { ExMsg = exMsg; SysExType = sysExType; } /// /// 错误提示信息 /// public static SysExCore ThrowFailException(string exMsg) { return new SysExCore(ESysExType.Fail, exMsg); } /// /// 错误提示信息 /// public static SysExCore ThrowInEmpty() { return new SysExCore(ESysExType.Fail, "请求数据为空。"); } /// /// token无效 /// public static SysExCore ThrowToken() { return new SysExCore(ESysExType.LoginTimeout, "当前登录token无效,请重新登录后再操作。"); } /// /// 登录超时 /// public static SysExCore ThrowLoginTimeout() { return new SysExCore(ESysExType.LoginTimeout, "登录超时,请重新登录!"); } /// /// 密码过期 /// public static SysExCore ThrowPwdExpiration() { return new SysExCore(ESysExType.PwdExpiration, "用户密码已过期。"); } /// /// 数据库连接配置文件异常 /// public static SysExCore ThrowDbSetError() { return new SysExCore(ESysExType.DbSetError, "数据库连接配置文件异常,请联系管理员。"); } /// /// 数据库连接配置文件异常 /// public static SysExCore ThrowDbConnError(Exception ex) { return new SysExCore(ESysExType.DbConnError, ex.Message, ex); } public static SysExCore GetSysExCore(Exception ex) { if (ex is SysExCore) { return ex as SysExCore; } else { return new SysExCore(ESysExType.Exception, ex.Message, ex); } } public static ResInfo GetResErr(Exception ex, object data = null) { SysExCore ec; if (ex is SysExCore) { ec = ex as SysExCore; } else { ec = new SysExCore(ESysExType.Exception, ex.Message, ex); } EResponseCode rescode = EResponseCode.Fail; if (ec.SysExType == ESysExType.Exception) { rescode = EResponseCode.Exception; } else if (ec.SysExType == ESysExType.LoginTimeout) { rescode = EResponseCode.LoginTimeout; } else if (ec.SysExType == ESysExType.PwdExpiration) { rescode = EResponseCode.PwdExpiration; } else if (ec.SysExType == ESysExType.PwdInit) { rescode = EResponseCode.PwdInit; } else if (ec.SysExType == ESysExType.FilterIPError) { rescode = EResponseCode.FilterIPError; } else if (ec.SysExType == ESysExType.FilterTimeError) { rescode = EResponseCode.FilterTimeError; } ResInfo infos = new ResInfo(); infos.code = rescode; infos.info = ex.Message; infos.data = data; return infos; //return new ResInfo() { code = rescode, info = ex.Message, data = data }; } public static ResInfo GetResSucc(string Msg="", object data = null) { return new ResInfo() { code = EResponseCode.Success, data = data, info = string.IsNullOrWhiteSpace(Msg) ? "响应成功" : Msg }; } } }