作用
在我的项目中, 可能会遇到各种各样的异常情况, 如果在每个办法中都增加其异样解决机制 (如:trycatch), 就会导致整个代码的构造都显得很凌乱;
即便未来呈现了异样, 解决起来也很麻烦, 不能很好的治理, 所以就须要将这些异样及逆行对立的形式进行异样解决.
实现
@RestControllerAdvice
// 作用: 标识我是一个告诉办法, 并且只拦挡 Controll 层的异样. 并且返回 JSON.
public class SysResultException {
// 须要定义一个全局的办法 返回指定的报错信息.
//ExceptionHandler 配置异样的类型, 当遇到了某种异样时在执行该办法.
@ExceptionHandler(RuntimeException.class)
public Object exception(Exception e){e.printStackTrace();
// 日志记录 / 控制台输入. 让程序员晓得哪里报错!!!
return SysResult.fail();}
}
@RestControllerAdvice 注解的作用: 标识为一个告诉办法, 并且只拦挡 Controller 层的异样. 并且返回为 JSON 串.
@ExceptionHandler(RuntimeException.class)注解的作用: 配置异样的类型, 当遇到了某种异样时在执行该办法,(RuntimeException.class)指异样类型为运行时异样.
留神
- 因为我的项目中个别都是 controller–service–mapper, 所以咱们只须要在 controller 层进行对立异样解决即可, 因为 service/mapper 层的异样都会往上抛出至 controller 层
- 全局异样解决机制, 该性能是通过 Spring 利用 AOP 实现的.