一个简单的异常处理demo

首先,
1.自定义异常类

@Data
public class LyException extends RuntimeException{

    private ExceptinEnums exceptinEnums;

}

通过枚举的方式创建异常信息

@Getter
@NoArgsConstructor
@AllArgsConstructor
public enum  ExceptinEnums{

    PRICE_NOT_NULL(400,"价格不能为空"),
    AGE_NOT_NULL(400,"年龄不能为空");

    private int code;
    private String msg;

}

创建AOP切面,spring的controller层切面,使用@ControllerAdvice注解

@ControllerAdvice
public class CommonExcetionHandler {

    @ExceptionHandler(LyException.class)
    public ResponseEntity<ExceptionResult> handleException(LyException e){
        ExceptinEnums exceptinEnums = e.getExceptinEnums();
        ExceptionResult exceptionResult = new ExceptionResult(exceptinEnums);
        return  ResponseEntity.status(exceptinEnums.getCode()).body(exceptionResult);
    }
}

测试controller层

@RestController
@RequestMapping("item")
public class ItemController {
//    @Autowired
//    private Itemservice itemservice;

    @PostMapping
    public ResponseEntity<Item> saveItem(Item item){
        throw new LyException(ExceptinEnums.PRICE_NOT_NULL);
    }
}

当Controller层抛出异常,通过枚举获得异常(最好是在数据库配置异常表,获得异常信息),
AOP切面处理异常,将异常封装成自定义的信息发送到前端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值