在实际开发场景中,后端异常报错信息是不允许返回给前端的,所以就有了全局异常处理机制
工具
(通常为一个公共类,使用时要注意当前服务是否已经注入了异常处理类bean的实例化对象)
@RestControllerAdvice 是一个专门用于 RESTful API 的注解,用于定义全局异常处理和全局数据绑定的类。
@ControllerAdvice是一个组件注解,允许你在一个地方处理整个应用程序控制器的异常、绑定数据和预处理请求。
总之; 区别就是@RestControllerAdvice 更专注于 RESTful API 应用程序,并默认返回 JSON 格式的响应。在使用时可以根据应用程序的类型和需求选择合适的注解。
@Log4j 打印日志
@ExcpetionHander 方法头注解,用于声明该方法监听异常,一但抛出了规定异常,就会执行此方法 通常和@RestControllerAdvice 或 @ControllerAdvice联合使用
也可以进行自定义异常处理,生命一个自定义异常类
严谨来说,应该针对业务可能出现的异常逐一生命专属的异常处理方法,但我是不严谨的人,通常生命为runtimeExcpetion异常监听,因为它是非检查异常中最大的,里面包括 NullPointerException,(空指针),ArrayIndexOutOfBoundsException(下标越界等异常) 等等...
微服务场景下一定注意当前服务是否注入了异常处理类,如果未生效 (手动注入尝试)
如何使用
使用效果
更多信息详解: Springboot全局异常处理-CSDN博客