统一异常处理

  在web项目开发中,不管是mapper层、service层还是controller层,都有可能发生异常。如果每个异常都单独处理,系统的代码耦合性高,工作量大,维护困难。SpringMVC能将所有类型的异常处理,从各层的各种处理过程中解耦出来,进行统一处理,既保证了相关处理过程的功能较单一,也实现了异常信息的统一处理和维护。
  SpringMVC 框架中异常处理流程如下图所示。从图中可以看出, mapper/dao、service、controller各层出现的异常都通过throws Exception向上抛出,最后由SpringMVC前端控制器交由全局异常处理器(一个系统只有一个异常处理器)进行统一异常处理进行异常处理,所以,系统中的异常是由 SpringMVC 框架来统一处理异常的。
实现全局统一异常处理时,主要使用两个注解:
@RestControllerAdvice:定义一个类为异常类
@ExceptionHandler:指定处理特定异常的方法
具体实现思路:
⚫ 自定义一个异常类,捕获针对项目或业务的某个异常
⚫ 使用@ExceptionHandler注解处理自定义异常和通用异常
⚫ 使用@RestControllerAdvice接收所有的控制层方法抛出的异常
posted @ 2023-04-02 14:37  Linqylin  阅读(43)  评论(0编辑  收藏  举报