From a716619910b47f4c4281e29b243ff66ff5719dc0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=A3=9E=E7=BF=94=E7=9A=84=E4=BA=94=E8=8A=B1=E8=82=89?=
<492300924@qq.com>
Date: Mon, 21 Jul 2025 00:57:16 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E5=85=A8=E5=B1=80=E5=BC=82?=
=?UTF-8?q?=E5=B8=B8=E7=AE=A1=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
weblog-module-common/pom.xml | 4 ++
.../weblog/common/enums/ResponseCodeEnum.java | 26 ++++++++++
.../exception/BaseExceptionInterface.java | 11 +++++
.../weblog/common/exception/BizException.java | 28 +++++++++++
.../exception/GlobalExceptionHandler.java | 47 +++++++++++++++++++
.../weblog/common/utils/Response.java | 18 +++++++
.../weblog/web/controller/TestController.java | 29 ++++++++++++
7 files changed, 163 insertions(+)
create mode 100644 weblog-module-common/src/main/java/com/qianyong/weblog/common/enums/ResponseCodeEnum.java
create mode 100644 weblog-module-common/src/main/java/com/qianyong/weblog/common/exception/BaseExceptionInterface.java
create mode 100644 weblog-module-common/src/main/java/com/qianyong/weblog/common/exception/BizException.java
create mode 100644 weblog-module-common/src/main/java/com/qianyong/weblog/common/exception/GlobalExceptionHandler.java
diff --git a/weblog-module-common/pom.xml b/weblog-module-common/pom.xml
index 926bebb..3159d75 100644
--- a/weblog-module-common/pom.xml
+++ b/weblog-module-common/pom.xml
@@ -48,6 +48,10 @@
com.fasterxml.jackson.core
jackson-core
+
+ org.springframework.boot
+ spring-boot-starter-web
+
diff --git a/weblog-module-common/src/main/java/com/qianyong/weblog/common/enums/ResponseCodeEnum.java b/weblog-module-common/src/main/java/com/qianyong/weblog/common/enums/ResponseCodeEnum.java
new file mode 100644
index 0000000..c115722
--- /dev/null
+++ b/weblog-module-common/src/main/java/com/qianyong/weblog/common/enums/ResponseCodeEnum.java
@@ -0,0 +1,26 @@
+package com.qianyong.weblog.common.enums;
+
+import com.qianyong.weblog.common.exception.BaseExceptionInterface;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author: xiaoduoduo
+ * @date: 2023-08-15 10:33
+ * @description: 响应异常码
+ **/
+@Getter
+@AllArgsConstructor
+public enum ResponseCodeEnum implements BaseExceptionInterface {
+ // ----------- 通用异常状态码 -----------
+ SYSTEM_ERROR("10000", "出错啦,后台小哥正在努力修复中..."),
+
+ // ----------- 业务异常状态码 -----------
+ PRODUCT_NOT_FOUND("20000", "该产品不存在(测试使用)"),
+ ;
+
+ // 异常码
+ private String errorCode;
+ // 错误信息
+ private String errorMessage;
+}
diff --git a/weblog-module-common/src/main/java/com/qianyong/weblog/common/exception/BaseExceptionInterface.java b/weblog-module-common/src/main/java/com/qianyong/weblog/common/exception/BaseExceptionInterface.java
new file mode 100644
index 0000000..621f6df
--- /dev/null
+++ b/weblog-module-common/src/main/java/com/qianyong/weblog/common/exception/BaseExceptionInterface.java
@@ -0,0 +1,11 @@
+package com.qianyong.weblog.common.exception;
+/**
+ * @author: xiaoduoduo
+ * @date: 2023-08-15 9:54
+ * @description: 通用异常接口
+ **/
+public interface BaseExceptionInterface {
+ String getErrorCode();
+
+ String getErrorMessage();
+}
diff --git a/weblog-module-common/src/main/java/com/qianyong/weblog/common/exception/BizException.java b/weblog-module-common/src/main/java/com/qianyong/weblog/common/exception/BizException.java
new file mode 100644
index 0000000..cbdaa25
--- /dev/null
+++ b/weblog-module-common/src/main/java/com/qianyong/weblog/common/exception/BizException.java
@@ -0,0 +1,28 @@
+package com.qianyong.weblog.common.exception;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * Created with IntelliJ IDEA.
+ *
+ * @author :xiaoduoduo
+ * @date :2025/07/20
+ * @description:业务异常
+ * @version:1.0
+ */
+@Getter
+@Setter
+public class BizException extends RuntimeException{
+
+ private static final long serialVersionUID = 1L;
+ // 异常码
+ private String errorCode;
+ // 错误信息
+ private String errorMessage;
+
+ public BizException(BaseExceptionInterface baseExceptionInterface) {
+ this.errorCode = baseExceptionInterface.getErrorCode();
+ this.errorMessage = baseExceptionInterface.getErrorMessage();
+ }
+}
diff --git a/weblog-module-common/src/main/java/com/qianyong/weblog/common/exception/GlobalExceptionHandler.java b/weblog-module-common/src/main/java/com/qianyong/weblog/common/exception/GlobalExceptionHandler.java
new file mode 100644
index 0000000..24a1a9d
--- /dev/null
+++ b/weblog-module-common/src/main/java/com/qianyong/weblog/common/exception/GlobalExceptionHandler.java
@@ -0,0 +1,47 @@
+package com.qianyong.weblog.common.exception;
+
+import com.qianyong.weblog.common.enums.ResponseCodeEnum;
+import com.qianyong.weblog.common.utils.Response;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.ControllerAdvice;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * Created with IntelliJ IDEA.
+ *
+ * @author :xiaoduoduo
+ * @date :2025/07/21
+ * @description: 全局异常处理类
+ * @version:1.0
+ */
+@Slf4j
+@ControllerAdvice
+public class GlobalExceptionHandler {
+ /**
+ * 捕获自定义业务异常
+ * @return
+ */
+ @ExceptionHandler({ BizException.class })
+ @ResponseBody
+ public Response