From ddeb165e7efb0855622e0a93d8f93333402fcd5c Mon Sep 17 00:00:00 2001 From: icewint Date: Sun, 22 Feb 2026 11:27:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=A4=96=E9=83=A8=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E7=9A=84=E7=BB=9F=E4=B8=80=E5=BC=82=E5=B8=B8=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/PubExceptionHandler.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 wcs/src/main/java/org/wcs/serve/exception/handler/PubExceptionHandler.java diff --git a/wcs/src/main/java/org/wcs/serve/exception/handler/PubExceptionHandler.java b/wcs/src/main/java/org/wcs/serve/exception/handler/PubExceptionHandler.java new file mode 100644 index 0000000..2fc25ac --- /dev/null +++ b/wcs/src/main/java/org/wcs/serve/exception/handler/PubExceptionHandler.java @@ -0,0 +1,45 @@ +package org.wcs.serve.exception.handler; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.ObjectError; +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; +import org.wcs.factory.PubServeResponseFactory; +import org.wcs.model.vo.pub.PubServeResponse; + +import java.util.List; + +@Slf4j +@RestControllerAdvice(basePackages = {"org.wcs.serve.controller.pub"}) +public class PubExceptionHandler { + + /** + * 接口层参数校验失败 + * @param ex 异常信息 + * @return 响应结果 + */ + @ExceptionHandler(value = MethodArgumentNotValidException.class) + @ResponseBody + public PubServeResponse handleException(MethodArgumentNotValidException ex) { + log.info("外部接口,接口层参数校验失败", ex); + List allErrors = ex.getAllErrors(); + if(allErrors.isEmpty()) { + return PubServeResponseFactory.fail("参数校验失败,请检查传入的数据格式"); + } + return PubServeResponseFactory.fail(allErrors.getFirst().getDefaultMessage()); + } + + /** + * 兜底异常 + * @param ex 异常信息 + * @return 响应结果 + */ + @ExceptionHandler(value = Exception.class) + @ResponseBody + public PubServeResponse handleException(Exception ex) { + log.error("外部接口,系统异常", ex); + return PubServeResponseFactory.fail("系统异常:" + ex.getMessage()); + } +}