Springboot 中使用 Aop_springboot aop-CSDN博客

全局异常处理类 - 通过AOP

参考文档@RestControllerAdvice注解_加油当当的博客-CSDN博客


/**
 * 自定义业务异常
 */
@Data
public class BusinessException extends RuntimeException{
    private int code;
    private String description;

    public BusinessException(String message, int code, String description) {
        super(message);
        this.code = code;
        this.description = description;
    }
}
/**
 * 自定义异常处理类
 */

/**
*** @RestControllerAdvice可以捕获整个应用程序中抛出的异常,并对它们进行处理。
* 这样可以实现在整个应用程序范围内统一处理异常的目标;
* @RestControllerAdvice注解实际上是@ControllerAdvice和@ResponseBody注解的组合。
* 也就是说,当你使用@RestControllerAdvice注解时,
* 异常处理方法的返回值将自动转换为HTTP响应的主体;**
*/
@RestControllerAdvice
public class GlobalExceptionHandler {

		/**
		* **用于指定当前方法所处理的异常类型**
		*/
    @ExceptionHandler({BusinessException.class})
    public ResponseBody businessExceptionHandler(BusinessException e){
        return ResultUtils.error(e.getCode(),e.getMessage(), e.getDescription());
    }

    @ExceptionHandler({RuntimeException.class})
    public ResponseBody businessExceptionHandler(RuntimeException e){
				
        return ResultUtils.error(ResponseCode.SYSTEM_ERROR,e.getMessage());
    }

}