SpringBoot中使用自定义异常
1.创建枚举类型存储异常
package com.sell.enums;
import lombok.Getter;
@Getter
public enum ResultEnum {
SUCCESS(0,"成功"),
PARAM_ERRO(1, "参数不正确"),
ORDER_FINISH_SUCCESS(23,"订单取消成功"),
PRODUCT_STATUS_ERROR(24,"商品状态不正确"),
PRODUCT_UPDATE_SUCCESS(25,"商品修改成功");
private Integer code;
private String message;
ResultEnum(Integer code, String message) {
this.code = code;
this.message = message;
}
}
创建枚举类型添加字段code以及message,和有参的构造方法;和一些会出现的异常类型,例如SUCCESS(0,“成功”)
2.创建异常处理类SellException
package com.sell.exception;
import com.sell.enums.ResultEnum;
public class SellException extends RuntimeException {
private Integer code;
public SellException(ResultEnum resultEnum) {
super(resultEnum.getMessage());
this.code = resultEnum.getCode();
}
public SellException(Integer code, String defaultMessage) {
super(defaultMessage);
this.code = code;
}
}
创建异常处理类,继承RuntimeException,创建code属性,并添加有参方法,以枚举入参,或者以code入参;
3.手动抛出自定义异常
@Override
public void increaseStock(List<CartDTO> cartDTOList) {
for (CartDTO cartDTO : cartDTOList){
ProductInfo productInfo = repository.getOne(cartDTO.getProductId());
if (productInfo == null){
throw new SellException(ResultEnum.PRODUCT_NOT_EXIST); //抛出产品不存在的自定义异常
}
Integer result = productInfo.getProductStock() + cartDTO.getProductQuantity();
productInfo.setProductStock(result);
repository.save(productInfo);
}
}