From 1adbcf8e0263d569ffa6a05775c357f52e07f436 Mon Sep 17 00:00:00 2001
From: liuxm <liuxm_a@163.com>
Date: 星期二, 11 六月 2024 16:57:50 +0800
Subject: [PATCH] 验证和异常处理

---
 pms-parent/pms-common/src/main/java/com/dy/common/webUtil/GlExceptionHandler.java |   26 ++++++++++++
 /dev/null                                                                         |   37 ------------------
 2 files changed, 25 insertions(+), 38 deletions(-)

diff --git a/pms-parent/pms-common/src/main/java/com/dy/common/webUtil/GlExceptionHandler.java b/pms-parent/pms-common/src/main/java/com/dy/common/webUtil/GlExceptionHandler.java
index cfafcf9..1eeaf11 100644
--- a/pms-parent/pms-common/src/main/java/com/dy/common/webUtil/GlExceptionHandler.java
+++ b/pms-parent/pms-common/src/main/java/com/dy/common/webUtil/GlExceptionHandler.java
@@ -1,6 +1,8 @@
 package com.dy.common.webUtil;
 
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.MethodArgumentNotValidException;
 import org.springframework.web.bind.annotation.ControllerAdvice;
 import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.ResponseBody;
@@ -9,6 +11,7 @@
  * 鍏ㄥ眬寮傚父澶勭悊锛屽鐞嗗湪Controller涓姏鍑虹殑寮傚父锛屽湪Controller涔嬪墠锛堝Fileter锛夊彂鐢熺殑閿欒鎴栧紓甯哥敱GlErrorCtrl澶勭悊
  * 姝ょ被鏄熀浜庢嫤鎴櫒鍜屽疄鐜版寚瀹氭帴鍙o紙GlExceptionHandler鍜孏lExceptionHandlerImpl锛�
  * 鍙︿竴绉嶅疄鐜版柟寮忔槸鍩轰簬娉ㄨВ鍒囬潰瀹炵幇锛圙lExceptionAspect锛�
+ * handleValidationExceptions()澶勭悊鍙傛暟楠岃瘉鎬у紓甯�,涓� @Valid閰嶅悎浣跨敤
  */
 @ControllerAdvice
 @ResponseBody
@@ -20,7 +23,28 @@
         log.error("鎹曡幏鍒癎lException锛歿}", e.getMsg(), e);
         return BaseResponseUtils.buildException(e.getMsg());
     }
-
+    @ExceptionHandler
+    public BaseResponse handleValidationExceptions(MethodArgumentNotValidException e) {
+        log.error("鎹曡幏鍒伴獙璇佹�у紓甯革細{}锛屽紓甯告爤杞ㄨ抗锛歿}", e.getMessage(), e.getStackTrace());
+        // 妫�鏌ユ槸鍚︽湁閿欒锛岄伩鍏嶇┖鍒楄〃鎯呭喌涓嬬殑涓嶅繀瑕佹搷浣�
+        BindingResult bindingResult = e.getBindingResult();
+        if (bindingResult.hasErrors()) {
+            StringBuilder sb = new StringBuilder();
+            bindingResult.getAllErrors().forEach(error -> {
+                // 蹇界暐浜嗗瓧娈靛悕鐨勮幏鍙栵紝濡傛灉闇�瑕佸彲浠ユ寜闇�鎭㈠骞朵娇鐢�
+                // String fieldName = ((FieldError) error).getField();
+                String errorMessage = error.getDefaultMessage();
+                sb.append(errorMessage).append("锛�");
+            });
+            // 浼樺寲杩斿洖鍊肩殑娉涘瀷鎸囧畾
+            return BaseResponseUtils.buildException(sb.substring(0, sb.length() - 1));
+        } else {
+            // 濡傛灉娌℃湁閿欒锛岃繑鍥炰竴涓�氱敤閿欒娑堟伅锛岄伩鍏嶈繑鍥炵┖鎴杗ull
+            log.warn("棰勬湡鐨勯獙璇侀敊璇笉瀛樺湪锛岃繖鍙兘鏄竴涓紓甯稿鐞嗛�昏緫鐨勯敊璇��");
+            return BaseResponseUtils.buildException("鍙戠敓浜嗕竴涓湭鐭ョ殑楠岃瘉閿欒銆�");
+        }
+    }
+    @ExceptionHandler
     public BaseResponse exceptionHandler(Throwable t) {
         log.error("鎹曡幏鍒板紓甯革細{}",t.getMessage(),t);
         return BaseResponseUtils.buildException("鍦–ontroller涓垨鍚庝骇鐢熷紓甯革細" + t.getMessage());
diff --git a/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/aop/ExceptionHandlerAdvice.java b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/aop/ExceptionHandlerAdvice.java
deleted file mode 100644
index 82b5ab9..0000000
--- a/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/aop/ExceptionHandlerAdvice.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.dy.pmsGlobal.aop;
-
-import com.dy.common.webUtil.BaseResponse;
-import com.dy.common.webUtil.BaseResponseUtils;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.MethodArgumentNotValidException;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.bind.annotation.RestControllerAdvice;
-
-@ResponseBody
-@RestControllerAdvice
-@Slf4j
-public class ExceptionHandlerAdvice {
-
-    @ExceptionHandler(MethodArgumentNotValidException.class)
-    public BaseResponse<?> handleValidationExceptions(MethodArgumentNotValidException ex) {
-        log.error("[handleValidationExceptions]", ex);
-        StringBuilder sb = new StringBuilder();
-        ex.getBindingResult().getAllErrors().forEach(error -> {
-//            String fieldName = ((org.springframework.validation.FieldError) error).getField();
-            String errorMessage = error.getDefaultMessage();
-            sb.append(errorMessage).append(";");
-        });
-        return BaseResponseUtils.buildException(sb.substring(0, sb.length() - 1));
-    }
-    /**
-     * 澶勭悊绯荤粺寮傚父锛屽厹搴曞鐞嗘墍鏈夊紓甯�
-     */
-    @ExceptionHandler(value = Exception.class)
-    public BaseResponse<?> defaultExceptionHandler(Throwable ex) {
-        log.error("[defaultExceptionHandler]", ex);
-        // 杩斿洖 ERROR
-        return BaseResponseUtils.buildException(ex.getMessage());
-    }
-
-}
\ No newline at end of file

--
Gitblit v1.8.0