package com.vci.ubcs.starter.exception; // // Source code recreated from a .class file by IntelliJ IDEA // (powered by FernFlower decompiler) // import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.vci.ubcs.starter.web.util.MessageUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springblade.core.log.exception.ServiceException; import org.springframework.web.server.ServerErrorException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.text.MessageFormat; public class VciBaseException extends ServiceException { private Logger log = LoggerFactory.getLogger(this.getClass()); public static final String paramNull = "com.vci.base.paramNull"; public static final String fieldValueRepeat = "com.vci.base.fieldValueRepeat"; public static final String objectNotFoundInDb = "com.vci.base.objectNotFoundInDb"; public static final String tsNotEqual = "com.vci.base.tsNotEqual"; public static final String dateValueFormatError = "com.vci.base.dateValueForamtError"; public static final String notLogin = "com.vci.base.notLogin"; public static final String notRight = "com.vci.base.notRight"; public static final String notDataRight = "com.vci.base.notDataRight"; public static final String notUIRight = "com.vci.base.notUIRight"; public static final String connectCorbaFail = "com.vci.base.connectCorbaFail"; public static final String corbaNotConfig = "com.vci.base.corbaNotConfig "; private String code; private Object[] objs = new Object[0]; public VciBaseException(String code) { super(code); this.code = code; } public VciBaseException(String code, Object[] objs) { super(code); this.code = code; this.objs = objs; } public VciBaseException(String code, Object[] objs, Throwable e) { super(code); this.code = code; this.objs = objs; } public String getCode() { return this.code; } public void setCode(String code) { this.code = code; } public Object[] getObjs() { return this.objs; } public void setObjs(Object[] objs) { this.objs = objs; } public String getErrorMsg() { if (!(this instanceof VciBaseException) && !this.getClass().getSuperclass().equals(VciBaseException.class)) { return this instanceof Exception ? this.getMessage() : this.code; } else { if (StringUtils.isNotBlank(this.code)) { this.code = MessageUtils.get(this.code, this.objs); } this.code = MessageFormat.format(this.code, this.objs); return this.code; } } /** * 获取异常信息 * @param e 异常对象 * @return 异常对象上的所有内容 */ public static String getErrorMsgByE(Throwable e){ if(e == null){ return "未知错误"; } if( e.getClass()!= null && e.getClass().getSuperclass()!= null && (e.getClass().getSuperclass().equals(RuntimeException.class) || e.getClass().getSuperclass().getName().endsWith(".VciBaseException") || e.getClass().getName().endsWith(".VciBaseException"))){ //说明是我们自定义的异常类 try { Method errorMethod = e.getClass().getMethod("getErrorMsg"); if(errorMethod != null ){ return (String)errorMethod.invoke(e); } } catch (NoSuchMethodException e1) { return e.getMessage(); } catch (IllegalAccessException e1) { return e.getMessage(); } catch (InvocationTargetException e1) { return e.getMessage(); } } return e.getMessage(); } @Override public String getMessage() { return this.getCode() + "," + this.getErrorMsg(); } }