【Spring】Spring 全局异常处理

文章目录

  • 1.概述
  • 2.全局异常处理
    • 2.1. HandlerExceptionResolver接口
    • 2.2. 使用示例
    • 2.3. Controller局部异常处理
      • 2.3.1. 使用示例
      • 2.3.2. 一个问题
    • 2.4. ControllerAdvice
      • 2.41. 使用示例
      • 2.4.2. 控制生效的Controller范围
  • 2.5 新案例
      • 2.5.1 异常捕获
      • 2.5.2 示例服务
      • 2.5.3 测试说明
  • 3.总结

1.概述

在具体的SSM项目开发中,由于Controller层为处于请求处理的最顶层,再往上就是框架代码的。

因此,肯定需要在Controller捕获所有异常,并且做适当处理,返回给前端一个友好的错误码。

不过,Controller一多,我们发现每个Controller里都有大量重复的、冗余的异常处理代码,很是啰嗦。

能否将这些重复的部分抽取出来,这样保证Controller层更专注于业务逻辑的处理,
同时能够使得异常的处理有一个统一的控制中心点。

我们先来介绍一下今天的主角,分别是 @ControllerAdvice 和 @ExceptionHandler 。

  1. @ControllerAdvice 相当于 controller 的切面,主要用于 @ExceptionHandler, @InitBinder 和 @ModelAttribute,使注解标注的方法对每一个 controller 都起作用。默认对所有 controller 都

你可能感兴趣的:(boot,java,spring,boot,spring,全局异常)