熟练使用SpringBoot--使用ControllerAdvice或RestControllerAdvice处理异常

前言

在Spring 3.2中,新增了@ControllerAdvice、@RestControllerAdvice 注解,可以用于定义@ExceptionHandler、@InitBinder、@ModelAttribute,并应用到所有@RequestMapping、@PostMapping, @GetMapping注解中。

注解使用

定义一个全局的异常拦截器
在这里插入图片描述
注意:

@ExceptionHandler注解传入的参数可以一个数组,使用该注解时,传入的参数不能相同,就是不能两个@ExceptionHandler去处理一个异常,传入的参数相同,初始化ExceptionHandler失败

对于@ControllerAdvice注解,看一下源码在这里插入图片描述
我们可以传递一个basePackages,声明的类(可以是数组)

异常处理

编写自定义异常处理类
在这里插入图片描述

Spring对于RuntimeException类的异常才会进行事务回滚,所以一般自定义异常都继承该异常类

使用

在这里插入图片描述
在这里插入图片描述

说明

我们也可以使用@RestControllerAdvice替代@ControllerAdvice,这样方法上就可以不用添加@RequestBody,@RestControllerAdvice在注解上已经添加了@RequestBody

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值