From eebb2870950e04438e4a71b877ab2528a484d885 Mon Sep 17 00:00:00 2001 From: "Ray.Hao" <1490493387@qq.com> Date: Sat, 23 May 2026 10:30:44 +0800 Subject: [PATCH] =?UTF-8?q?feat(exception):=20=E6=B7=BB=E5=8A=A0=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=9D=83=E9=99=90=E5=BC=82=E5=B8=B8=E5=8F=8A=E9=80=9A?= =?UTF-8?q?=E7=94=A8=E6=95=B0=E6=8D=AE=E5=BA=93=E6=89=A7=E8=A1=8C=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exception/DataPermissionException.java | 28 +++++++++++++++++++ .../youlai/boot/common/result/ResultCode.java | 1 + .../web/advice/GlobalExceptionHandler.java | 8 ++---- 3 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/youlai/boot/common/exception/DataPermissionException.java diff --git a/src/main/java/com/youlai/boot/common/exception/DataPermissionException.java b/src/main/java/com/youlai/boot/common/exception/DataPermissionException.java new file mode 100644 index 00000000..1598e2b1 --- /dev/null +++ b/src/main/java/com/youlai/boot/common/exception/DataPermissionException.java @@ -0,0 +1,28 @@ +package com.youlai.boot.common.exception; + +import lombok.Getter; + +/** + * 数据权限异常 + *
+ * 当数据权限拦截器拼接SQL条件失败时抛出,属于系统级异常,非业务异常。
+ *
+ * @author zc
+ * @since 2.0.0
+ */
+@Getter
+public class DataPermissionException extends RuntimeException {
+
+ private final String mappedStatementId;
+
+ public DataPermissionException(String mappedStatementId, String message) {
+ super(message);
+ this.mappedStatementId = mappedStatementId;
+ }
+
+ public DataPermissionException(String mappedStatementId, String message, Throwable cause) {
+ super(message, cause);
+ this.mappedStatementId = mappedStatementId;
+ }
+
+}
diff --git a/src/main/java/com/youlai/boot/common/result/ResultCode.java b/src/main/java/com/youlai/boot/common/result/ResultCode.java
index a0833d1d..dd7fa3d2 100644
--- a/src/main/java/com/youlai/boot/common/result/ResultCode.java
+++ b/src/main/java/com/youlai/boot/common/result/ResultCode.java
@@ -111,6 +111,7 @@ public enum ResultCode implements IResultCode, Serializable {
/** 二级宏观错误码:第三方服务具体错误(按号段细分,便于定位是接口不存在/数据库异常等) */
INTERFACE_NOT_EXIST("C0113", "接口不存在"),
DATABASE_SERVICE_ERROR("C0300", "数据库服务出错"),
+ DATABASE_EXECUTION_ERROR("C0310", "数据库执行异常"),
DATABASE_EXECUTION_SYNTAX_ERROR("C0313", "数据库执行语法错误"),
INTEGRITY_CONSTRAINT_VIOLATION("C0342", "违反了完整性约束"),
DATABASE_ACCESS_DENIED("C0351", "演示环境已禁用数据库写入功能,请本地部署修改数据库链接或开启Mock模式进行体验");
diff --git a/src/main/java/com/youlai/boot/framework/web/advice/GlobalExceptionHandler.java b/src/main/java/com/youlai/boot/framework/web/advice/GlobalExceptionHandler.java
index fb0e25d6..7be6bbce 100644
--- a/src/main/java/com/youlai/boot/framework/web/advice/GlobalExceptionHandler.java
+++ b/src/main/java/com/youlai/boot/framework/web/advice/GlobalExceptionHandler.java
@@ -190,13 +190,11 @@ public class GlobalExceptionHandler {
@ExceptionHandler(BadSqlGrammarException.class)
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public