File tree Expand file tree Collapse file tree 3 files changed +108
-0
lines changed
blogtree-util-api/src/main/java/org/blogtree/util/api/result/error Expand file tree Collapse file tree 3 files changed +108
-0
lines changed Original file line number Diff line number Diff line change
1
+ package org .blogtree .util .api .result .error ;
2
+
3
+ import java .text .MessageFormat ;
4
+
5
+ /**
6
+ * 通用的ErrorCode枚举接口,定义code和msg方法
7
+ */
8
+ public interface BaseError {
9
+
10
+ /**
11
+ * 获取 错误码
12
+ *
13
+ * @return 错误码
14
+ */
15
+ String getErrorCode ();
16
+
17
+ /**
18
+ * 获取 错误信息 或 错误信息模版
19
+ *
20
+ * @return 错误信息 或 错误信息模版
21
+ */
22
+ String getErrorMsg ();
23
+
24
+ /**
25
+ * 根据入参,拼接错误信息
26
+ *
27
+ * @param errorMsg 错误信息 或 错误信息模版
28
+ * @param arguments 待拼接的入参,可能为空
29
+ * @return 拼接好的错误信息
30
+ */
31
+ static String buildErrorMsg (String errorMsg , Object ... arguments ) {
32
+ if (arguments == null || arguments .length == 0 ) {
33
+ return errorMsg ;
34
+ } else {
35
+ return MessageFormat .format (errorMsg , arguments );
36
+ }
37
+ }
38
+ }
Original file line number Diff line number Diff line change
1
+ package org .blogtree .util .api .result .error ;
2
+
3
+ import lombok .Getter ;
4
+ import lombok .ToString ;
5
+
6
+ /**
7
+ * 业务异常类
8
+ */
9
+ @ Getter
10
+ @ ToString
11
+ public class BizException extends RuntimeException {
12
+
13
+ private static final long serialVersionUID = -1L ;
14
+
15
+ private String errorCode ;
16
+ private String errorMsg ;
17
+
18
+ /**
19
+ * 常用
20
+ * 从项目规范来说,应该全部为错误码枚举
21
+ * 错误枚举类,应该使用 或 继承 BaseError
22
+ */
23
+ public BizException (BaseError baseError , Object ... arguments ) {
24
+ this .errorCode = baseError .getErrorCode ();
25
+ this .errorMsg = BaseError .buildErrorMsg (baseError .getErrorMsg (), arguments );
26
+ }
27
+
28
+ /**
29
+ * 优化处理:
30
+ * fillInStackTrace内部 调用native的fillInStackTrace()方法去爬取线程堆栈信息,为运行时栈做一份快照,这一部分开销很大
31
+ * 由于是自定义业务异常,无需再查询堆栈信息,所有直接返回this即可
32
+ */
33
+ @ Override
34
+ public Throwable fillInStackTrace () {
35
+ return this ;
36
+ }
37
+ }
Original file line number Diff line number Diff line change
1
+ package org .blogtree .util .api .result .error ;
2
+
3
+ import lombok .AllArgsConstructor ;
4
+ import lombok .Getter ;
5
+
6
+ /**
7
+ * 通用的业务异常枚举。
8
+ * 实际业务系统,可参考此类,自行继承BaseError类。
9
+ */
10
+ @ Getter
11
+ @ AllArgsConstructor
12
+ public enum CommonError implements BaseError {
13
+
14
+ // ===== ===== ===== ===== 通用 - 入参校验异常 ===== ===== ===== =====
15
+ PARAM_NOT_NULL ("PARAM_NOT_NULL" , "{0}不能为NULL" ),
16
+ STRING_NOT_EMPTY ("STRING_NOT_EMPTY" , "{0}不能为NULL或空字符串" ),
17
+ NUMBER_NOT_EMPTY ("NUMBER_NOT_EMPTY" , "{0}不能为NULL或0" ),
18
+ DATE_NOT_EMPTY ("DATE_NOT_EMPTY" , "{0}不能为NULL或0" ),
19
+ LIST_NOT_EMPTY ("LIST_NOT_EMPTY" , "{0}不能为NULL或空数组" ),
20
+ NUMBER_NOT_LTE ("NUMBER_NOT_LTE" , "{0}不能大于{1}" ),
21
+
22
+ // ===== ===== ===== ===== 通用 - 数据库异常 ===== ===== ===== =====
23
+ DB_NOT_EXIST ("DB_NOT_EXIST" , "数据不存在" ),
24
+
25
+ // ===== ===== ===== ===== 终极异常 ===== ===== ===== =====
26
+ ERROR ("ERROR" , "系统异常" ),
27
+
28
+ // 占位
29
+ ;
30
+
31
+ private String errorCode ;
32
+ private String errorMsg ;
33
+ }
You can’t perform that action at this time.
0 commit comments