Skip to content

Commit 54d0c6e

Browse files
committed
api.result.error
1 parent c4bc8eb commit 54d0c6e

File tree

3 files changed

+108
-0
lines changed

3 files changed

+108
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
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+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
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+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
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+
}

0 commit comments

Comments
 (0)