简单介绍
@RestControllerAdvice是在Spring框架3.2新增的的注解
可以用来定义@ExceptionHandler,@InitBinder,@ModelAttribute,并应用到@RequestMapping中
使用原因
在统一异常处理时,如果每一个controller的每一个RequestMapping都进行异常的捕捉和处理,会造成代码的冗余,不方便维护,所以基于面向切面编程的思想,给这些处理异常的代码抽取出来.
具体实现
- 创建一个类,在类上加上@RestControllerAdvice或者@ControllerAdvice(这两者间有区别)实现一个切面,加上@Component作为一个组件加入ioc容器.
- 创建捕捉和处理统一异常的方法,方法上加上@ExceptionHandler,顾名思义,异常处理器,此注解需要value值,值是你想捕捉的异常的类型的字节码,并且方法也有参数,参数是此异常类的对象
- 可以处理多种异常,因为异常的种类,可以选择性的捕捉和处理异常,不同的异常给出不同的处理了,在处理异常时有一点需要注意,如果Exception异常和它的子类,更加范围小的异常同时存在时,会走范围小更精确的异常,并且处理掉后不会由Exception异常处理.
代码实现