1. 封装返回异常
/**
* 异常状态实体枚举类
*/
public enum ResultCode {
SUCCESS("0", "成功"),
ERROR("-1", "系统异常"),
PARAM_ERROR("1001", "参数异常"),
USER_EXIST_ERROR("2001", "用户已存在"),
USER_ACCOUNT_ERROR("2002", "账号或密码错误"),
USER_NOT_EXIST_ERROR("2003", "未找到用户"),
ORDER_PAY_ERROR("3001", "库存不足,下单失败"),
PARAM_LOST_ERROR("2004", "参数缺失"),
PARAM_PASSWORD_ERROR("2005", "原密码输入错误"),
;
public String code;
public String msg;
ResultCode(String code, String msg) {
this.code = code;
this.msg = msg;
}
}
/**
* 封装自定义异常信息处理类
*/
public class CustomException extends RuntimeException {
private String code;
private String msg;
public CustomException(ResultCode resultCode) {
this.code = resultCode.code;
this.msg = resultCode.msg;
}
public CustomException(String code, String msg) {
this.code = code;
this.msg = msg;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
调用:
//调用ResultCode类中已经封装好的异常
throw new CustomException(ResultCode.PARAM_LOST_ERROR);
//临时增加异常的信息(编码和错误信息)
throw new CustomException("968","错误");
2. 封装返回数据
/**
* 封装返回数据
*/
public class Result<T> {
private String code;
private String msg;
private T data;
private Result(T data) {
this.data = data;
}
public Result() {
}
public static Result success() {
Result tResult = new Result<>();
tResult.setCode(ResultCode.SUCCESS.code);
tResult.setMsg(ResultCode.SUCCESS.msg);
return tResult;
}
public static <T> Result<T> success(T data) {
Result<T> tResult = new Result<>(data);
tResult.setCode(ResultCode.SUCCESS.code);
tResult.setMsg(ResultCode.SUCCESS.msg);
return tResult;
}
public static Result error() {
Result tResult = new Result<>();
tResult.setCode(ResultCode.ERROR.code);
tResult.setMsg(ResultCode.ERROR.msg);
return tResult;
}
public static Result error(String code, String msg) {
Result tResult = new Result<>();
tResult.setCode(code);
tResult.setMsg(msg);
return tResult;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}