package com.vci.starter.web.exception;
|
|
import com.vci.starter.web.util.MessageUtils;
|
import org.apache.commons.lang3.StringUtils;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import java.text.MessageFormat;
|
import java.util.Locale;
|
import java.util.ResourceBundle;
|
|
/**
|
* 基本的异常,继承自RuntimeException可以被spring的事务管理自动处理
|
*/
|
public class VciBaseException extends RuntimeException {
|
|
/**
|
* 日志对象
|
*/
|
private Logger log = LoggerFactory.getLogger(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";
|
|
/**
|
* ts的值不存在
|
*/
|
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";
|
|
/**
|
* 没有UI权限
|
*/
|
public static final String notUIRight="com.vci.base.notUIRight";
|
|
/**
|
* 连接corba服务失败
|
*/
|
public static final String connectCorbaFail="com.vci.base.connectCorbaFail";
|
|
/**
|
* corba服务没有配置
|
*/
|
public static final String corbaNotConfig="com.vci.base.corbaNotConfig ";
|
|
/**
|
* 错误编码
|
*/
|
private String code ;
|
|
/**
|
* 错误对象
|
*/
|
private Object[] objs = new Object[0];
|
|
|
/**
|
* 构造方法
|
* @param code 编码
|
*/
|
public VciBaseException(String code){
|
this.code = code;
|
}
|
|
/**
|
* 构造方法
|
* @param code 编码
|
* @param objs 错误对象
|
*/
|
public VciBaseException(String code, Object[] objs){
|
this.code= code;
|
this.objs = objs;
|
}
|
|
/**
|
* 构造方法
|
* @param code 错误编码
|
* @param objs 错误信息对象
|
* @param e 异常对象
|
*/
|
public VciBaseException(String code,Object[] objs,Throwable e){
|
super(e);
|
this.code= code;
|
this.objs = objs;
|
}
|
|
public String getCode() {
|
return code;
|
}
|
|
public void setCode(String code) {
|
this.code = code;
|
}
|
|
public Object[] getObjs() {
|
return objs;
|
}
|
|
public void setObjs(Object[] objs) {
|
this.objs = objs;
|
}
|
|
/**
|
* 将异常的信息转换为本地化语言
|
* @return 转换后的本地化信息
|
*/
|
public String getErrorMsg(){
|
if( this instanceof VciBaseException || this.getClass().getSuperclass().equals(VciBaseException.class)){
|
if(StringUtils.isNotBlank(code)){
|
code = MessageUtils.get(code,this.objs);
|
}
|
code = MessageFormat.format(code,this.objs);
|
return code;
|
}else if( this instanceof Exception){
|
return getMessage();
|
}else{
|
return code;
|
}
|
}
|
|
/**
|
* 获取错误信息
|
* @return 错误信息
|
*/
|
@Override
|
public String getMessage(){
|
return getCode() +"," + getErrorMsg();
|
}
|
|
}
|