From ff31d592924958958c21fdef1975d499586d964f Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期五, 26 十二月 2025 17:41:43 +0800
Subject: [PATCH] BUG修复
---
rsf-server/src/main/java/com/vincent/rsf/server/common/exception/GlobalExceptionHandler.java | 34 ++++++++++++++++++++++++++++++++++
1 files changed, 34 insertions(+), 0 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/exception/GlobalExceptionHandler.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/exception/GlobalExceptionHandler.java
index 66f60c4..f26d109 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/common/exception/GlobalExceptionHandler.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/exception/GlobalExceptionHandler.java
@@ -1,10 +1,12 @@
package com.vincent.rsf.server.common.exception;
import com.vincent.rsf.framework.common.R;
+import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.common.constant.Constants;
import com.vincent.rsf.server.common.utils.CommonUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.dao.DuplicateKeyException;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.web.HttpRequestMethodNotSupportedException;
import org.springframework.web.bind.annotation.ControllerAdvice;
@@ -12,6 +14,8 @@
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletResponse;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
/**
* 鍏ㄥ眬寮傚父澶勭悊鍣�
@@ -43,10 +47,40 @@
@ExceptionHandler(BusinessException.class)
public R businessExceptionHandler(BusinessException e, HttpServletResponse response) {
CommonUtil.addCrossHeaders(response);
+ return R.parse(e.getMessage());
+ }
+
+ @ResponseBody
+ @ExceptionHandler(CoolException.class)
+ public R coolExceptionHandler(CoolException e, HttpServletResponse response) {
+ CommonUtil.addCrossHeaders(response);
return R.error(e.getMessage());
}
@ResponseBody
+ @ExceptionHandler(DuplicateKeyException.class)
+ public R duplicateKeyExceptionHandler(DuplicateKeyException e, HttpServletResponse response) {
+ CommonUtil.addCrossHeaders(response);
+ String msg = e.getMessage();
+ String out = "鍞竴绱㈠紩鍐茬獊";
+ try {
+ Pattern p = Pattern.compile("Duplicate entry '(.+?)' for key '(.+?)'");
+ Matcher m = p.matcher(msg);
+ if (m.find()) {
+ String value = m.group(1);
+ String key = m.group(2);
+ if ("idx_code".equalsIgnoreCase(key)) {
+ out = "缂栫爜宸插瓨鍦細" + value;
+ } else {
+ out = "鍞竴绱㈠紩[" + key + "]鍊煎凡瀛樺湪锛�" + value;
+ }
+ }
+ } catch (Exception ignore) {}
+ return R.error(out);
+ }
+
+
+ @ResponseBody
@ExceptionHandler(Throwable.class)
public R exceptionHandler(Throwable e, HttpServletResponse response) {
logger.error(e.getMessage(), e);
--
Gitblit v1.9.1