|
|
|
@ -1,24 +1,52 @@
|
|
|
|
|
package com.shanzhu.market.common.advice;
|
|
|
|
|
|
|
|
|
|
// 定义当前类所在的包路径
|
|
|
|
|
|
|
|
|
|
import com.shanzhu.market.common.constants.HttpStatus;
|
|
|
|
|
// 导入包含HTTP状态码常量的工具类
|
|
|
|
|
|
|
|
|
|
import com.shanzhu.market.common.exception.BusinessException;
|
|
|
|
|
// 导入自定义的业务异常类
|
|
|
|
|
|
|
|
|
|
import com.shanzhu.market.common.web.response.JsonResult;
|
|
|
|
|
// 导入用于封装JSON响应结果的工具类
|
|
|
|
|
|
|
|
|
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
|
|
|
|
// 导入Spring框架的异常处理注解
|
|
|
|
|
|
|
|
|
|
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
|
|
|
|
// 导入Spring框架的全局异常处理注解
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 统一异常处理类的基类
|
|
|
|
|
*/
|
|
|
|
|
// 定义类的注释,说明该类的作用
|
|
|
|
|
|
|
|
|
|
@RestControllerAdvice
|
|
|
|
|
// 声明该类为全局异常处理类,返回JSON格式的响应
|
|
|
|
|
|
|
|
|
|
public class ExceptionControllerAdvice {
|
|
|
|
|
// 定义全局异常处理类
|
|
|
|
|
|
|
|
|
|
@ExceptionHandler(RuntimeException.class)
|
|
|
|
|
// 声明方法处理RuntimeException类型的异常
|
|
|
|
|
|
|
|
|
|
public JsonResult<?> commonExceptionHandler(RuntimeException ex){
|
|
|
|
|
// 定义处理RuntimeException异常的方法,返回JsonResult对象
|
|
|
|
|
|
|
|
|
|
ex.printStackTrace();
|
|
|
|
|
// 打印异常堆栈信息到控制台
|
|
|
|
|
|
|
|
|
|
return JsonResult.error(HttpStatus.CODE_BUSINESS_ERROR,ex.getMessage());
|
|
|
|
|
// 返回封装的错误响应,包含状态码和异常信息
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ExceptionHandler(BusinessException.class)
|
|
|
|
|
// 声明方法处理BusinessException类型的异常
|
|
|
|
|
|
|
|
|
|
public JsonResult<?> businessHanler(BusinessException ex){
|
|
|
|
|
// 定义处理BusinessException异常的方法,返回JsonResult对象
|
|
|
|
|
|
|
|
|
|
return JsonResult.error(HttpStatus.CODE_BUSINESS_ERROR,ex.getMessage());
|
|
|
|
|
// 返回封装的错误响应,包含状态码和异常信息
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|