Springboot 中使用 Aop_springboot aop-CSDN博客
参考文档:@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());
}
}