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