枚举异常封装
@Getter
public enum ResultEnum {
PARAM_ERROR(1, "参数不正确"),
PRODUCT_NOT_EXIST(10, "商品不存在"),
PRODUCT_STOCK_ERROR(11, "商品库存不正确"),
ORDER_NOT_EXIST(12, "订单不存在"),
ORDERDETAIL_NOT_EXIST(13, "订单详情不存在"),
ORDER_STATUS_ERROR(14, "订单状态不正确"),
ORDER_UPDATE_FAIL(15, "订单更新失败"),
ORDER_DETAIL_EMPTY(16, "订单详情为空"),
ORDER_PAY_STATUS_ERROR(17, "订单支付状态不正确"),
CART_EMPTY(18, "购物车为空"),
ORDER_OWNER_ERROR(19, "该订单不属于当前用户"),
;
//数字
private Integer code;
//内容
private String message;
ResultEnum(Integer code, String message) {
this.code = code;
this.message = message;
}
}
- 1.继承运行时异常百度
- 2.构造方法里面传枚举对象
- 3.第二个手动设置异常
public class SellException extends RuntimeException{
private Integer code;
public SellException(ResultEnum resultEnum) {
//把枚举对象里面内容传到父类构造方法里
super(resultEnum.getMessage());
this.code = resultEnum.getCode();
}
public SellException(Integer code, String message) {
super(message);
this.code = code;
}
}
例如判断属性是空抛出异常(商品不存在)
- 1.new继承异常的对象,传进去一个枚举对象
ProductInfo productInfo = productService.findOne(orderDetail.getProductId());
if (productInfo == null) {
throw new SellException(ResultEnum.PRODUCT_NOT_EXIST);
}