@ControllerAdvice 配合 @ExceptionHandler 实现全局异常处理

本文介绍了如何利用Spring的@ControllerAdvice和@ExceptionHandler注解实现AOP思想的全局异常处理。通过@RestControllerAdvice结合@ControllerAdvice和@ResponseBody,可以定义一个组件来捕获并处理特定类型的异常。同时,文章提到了异常枚举和返回样例,以及Java异常结构图,帮助理解异常处理的流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AOP思想:通过@ControllerAdvice指定拦截哪个Controller,然后通过@ExceptionHandler指定要拦截的异常类型,在方法里面做拦截之后的处理。

@RestControllerAdvice = @ResponseBody + @ControllerAdvice = @ResponseBody + @Component

@Slf4j
// 指定要拦截的Controller
@RestControllerAdvice(basePackages = "com.atguigu.gulimall.product.controller")
public class GulimallExceptionControllerAdvice {
   
    
    // 指定要拦截的异常 下面为 当接口出现参数校验异常时会被拦截并做错误记录返回给前端
    @ExceptionHandler(value = MethodArgumentNotValidException.class)
    public R handleValidException(MethodArgumentNotValidException e) {
   
        log.error("数据校验出现异常:{},异常类型:{}", e.getMessage(), e.getClass());
        // BindingResult封装了前面Bean的校验结果
        BindingResult bindingResult = e.getBindingResult();
        HashMap
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王景清

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值