ludc
2025-01-16 5203081b68e3a8dc139d1807b2f8774e4a00a82a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
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 getErrorMsg();
    }
 
}