关于aop:全局异常的处理机制

作用

在我的项目中,可能会遇到各种各样的异常情况,如果在每个办法中都增加其异样解决机制(如: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)指异样类型为运行时异样.

留神

  1. 因为我的项目中个别都是controller–service–mapper,所以咱们只须要在controller层进行对立异样解决即可,因为service/mapper层的异样都会往上抛出至controller层
  2. 全局异样解决机制,该性能是通过Spring利用AOP实现的.

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理