作用
在我的项目中,可能会遇到各种各样的异常情况,如果在每个办法中都增加其异样解决机制(如: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实现的.