乐趣区

关于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 实现的.
退出移动版