前言
本文讲解使用 @ControllerAdvice + @ExceptionHandler 进行全局的 Controller 层异常处理,可以处理大部分开发中用到的自自定义业务异常处理了,再也不用在 Controller 层进行 try-catch 了 代码示例地址(代码里面类名稍微有些不同): https://gitee.com/coderLOL/springboot-demos
一、处理思路
- 思路:在sevice业务逻辑层 try{}catch(){} 捕获抛出,经由contorller 层抛到 自定义全局处理类 中处理自定义异常及系统异常。
2、实现方式:使用 @RestControllerAdvice + @ExceptionHandler 注解方式实现全局异常处
二、实现过程
1、@ControllerAdvice 注解定义全局异常处理类 ,@ExceptionHandler 注解声明异常处 理方法。
( 本类方法中用到的 ResponseResultUtil 工具类, ResponseCodeEnum 枚举类,下面步骤中会介绍)
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger;
2、定义一个用于返回页面结果信息的VO对象类:ResponseResultVO
3、 定义一个对步骤2中 返回信息结果处理的工具类:ResponseResultUtil
4、为方便统一管理异常代码和信息之间的关系,建立枚举类: ResponseCodeEnum
5、
(1)封装一个基础业务异常类(让所有自定义业务异常类 继承此 基础类):BaseBusinessException
(2)自定义的业务异常类 (例如):
自定义用户异常
6、service 层抛出
|