
【参考文章】:Spring全局异常处理的三种方式
【参考文章】:Spring Boot 系列(八)@ControllerAdvice 拦截异常并统一处理
【参考文章】:@ControllerAdvice + @ExceptionHandler 全局处理 Controller 层异常
1. 使用注解定义 异常处理类 和 处理方法
当在 controller 中发生异常时,如果异常煤油被捕获,则自动进入该方法中进行处理并返回;
@ControllerAdvice :注解声明全局异常处理类
@ExceptionHandler:注解声明异常处理方法
如果全部异常处理返回json,那么可以使用 @RestControllerAdvice 代替 @ControllerAdvice ,这样在方法上就可以不需要添加 @ResponseBody
@RestControllerAdvice
public class GlobalExceptionHandler { /**
* 系统内部异常
*
* @param request 请求对象
* @param response 返回信息
* @param e 异常对象
* @return 返回异常信息
*/
@ExceptionHandler(Exception.class)
public Object handleException(HttpServletRequest request, HttpServletResponse response, Exception e) { return new Object();
} }
2. 实现Spring的异常处理接口HandlerExceptionResolver
public class GlobalHandlerExceptionResolver implements HandlerExceptionResolver { /**
* 在这里处理所有得异常信息
*/
@Override
public ModelAndView resolveException(HttpServletRequest req, HttpServletResponse resp, Object o, Exception ex) { return new ModelAndView();
} }