From 3cb7b4971a5760e8f515f714188cc192b0d0a5a2 Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Tue, 4 Nov 2025 16:15:13 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8B=8D=E7=A9=B9=E5=A4=96=E5=8D=96--=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=91=98=E5=B7=A5=E5=8A=9F=E8=83=BD=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E4=B8=80-=E7=B3=BB=E7=BB=9F=E7=BA=A7=E5=88=AB=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 --- .../com/sky/constant/MessageConstant.java | 1 + .../sky/handler/GlobalExceptionHandler.java | 27 +++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/sky-common/src/main/java/com/sky/constant/MessageConstant.java b/sky-common/src/main/java/com/sky/constant/MessageConstant.java index c6b645d..4af1974 100644 --- a/sky-common/src/main/java/com/sky/constant/MessageConstant.java +++ b/sky-common/src/main/java/com/sky/constant/MessageConstant.java @@ -6,6 +6,7 @@ package com.sky.constant; public class MessageConstant { public static final String PASSWORD_ERROR = "密码错误"; + public static final String ALEADY_EXIST = "已经存在"; public static final String ACCOUNT_NOT_FOUND = "账号不存在"; public static final String ACCOUNT_LOCKED = "账号被锁定"; public static final String UNKNOWN_ERROR = "未知错误"; diff --git a/sky-server/src/main/java/com/sky/handler/GlobalExceptionHandler.java b/sky-server/src/main/java/com/sky/handler/GlobalExceptionHandler.java index 1a48598..ff51ff5 100644 --- a/sky-server/src/main/java/com/sky/handler/GlobalExceptionHandler.java +++ b/sky-server/src/main/java/com/sky/handler/GlobalExceptionHandler.java @@ -1,11 +1,14 @@ package com.sky.handler; +import com.sky.constant.MessageConstant; import com.sky.exception.BaseException; import com.sky.result.Result; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; +import java.sql.SQLIntegrityConstraintViolationException; + /** * 全局异常处理器,处理项目中抛出的业务异常 */ @@ -24,4 +27,28 @@ public class GlobalExceptionHandler { return Result.error(ex.getMessage()); } + + /** + * 捕获系统级的数据库异常 + * @param ex + * @return + */ + @ExceptionHandler + public Result exceptionHandler(SQLIntegrityConstraintViolationException ex){ + //Duplicate entry 'lisi' for key 'idx_username' + String message = ex.getMessage(); + log.error("异常信息:{}",message ); + //动态获取错误数据 + if (message.contains("Duplicate entry")) { + String[] msgs = message.split(" "); + String username = msgs[2]; +// String msg = username + "已经存在"; + String msg = username + MessageConstant.ALEADY_EXIST; + return Result.error(msg); + } + +// return Result.error(ex.getMessage()); + return Result.error(MessageConstant.UNKNOWN_ERROR); + } + }