0
点赞
收藏
分享

微信扫一扫

记录JAVA通用异常处理写法

高子歌 2022-02-27 阅读 124

创建一个全局异常exception类

@ControllerAdvice //控制器增强
@Log4j2
public class ExceptionCatch {
    @ExceptionHandler(Exception.class) //拦截所有异常
    @ResponseBody
    public ResponseResult exception(Exception e) {
        e.printStackTrace();
        //记录日志
        log.error("catch exception:{}",e.getMessage());
        //返回通用异常
        return ResponseResult.errorResult(AppHttpCodeEnum.SERVERS_ERROR);
    }
}

@ControllerAdvice //控制器增强

与@ExceptionHandler一起使用,用于接收controller抛出的指定异常或者全部异常统一处理

并且在配置文件类编写通用扫包代码

@Configuration
@ComponentScan("com.zuiyi.common.exception")
public class ExceptionConfig {
}

加上@Configuration注解主要是给我们的类加上了cglib代理。在执行我们的配置类的方法时,会执行cglib代理类中的方法,其中有一个非常重要的判断,当我们的执行方法和我们的调用方法是同一个方法时,会执行父类的方法new(cglib代理基于继承);当执行方法和调用方法不是同一个方法时会调用beanFactory.getBean获取。
 

测试:

举报

相关推荐

0 条评论