From 78bfb29d03a127cd6961ad5e99a396ec8f4e8668 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期二, 24 六月 2025 09:09:31 +0800
Subject: [PATCH] 配置跨域过滤器
---
src/main/java/com/cl/common/handler/GlobalExceptionHandler.java | 94 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 94 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/cl/common/handler/GlobalExceptionHandler.java b/src/main/java/com/cl/common/handler/GlobalExceptionHandler.java
new file mode 100644
index 0000000..4ff62a2
--- /dev/null
+++ b/src/main/java/com/cl/common/handler/GlobalExceptionHandler.java
@@ -0,0 +1,94 @@
+package com.cl.common.handler;
+
+
+
+import com.cl.common.constant.MessageConstant;
+import com.cl.common.exception.BaseException;
+import com.cl.common.exception.user.InterceptorException;
+import com.cl.common.result.Result;
+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 java.sql.SQLIntegrityConstraintViolationException;
+
+/**
+ * 全局异常处理器,处理项目中抛出的业务异常
+ */
+@RestControllerAdvice
+@Slf4j
+public class GlobalExceptionHandler {
+
+
+ /**
+ * 捕获业务异常
+ * @param ex
+ * @return
+ */
+ @ExceptionHandler
+ public Result exceptionHandler(BaseException ex){
+ log.error("异常信息:{}", ex.getMessage());
+ return Result.error(ex.getMessage());
+ }
+
+ /**
+ * 捕获业务异常
+ * @param ex
+ * @return
+ */
+ @ExceptionHandler
+ public Result loginHandler(InterceptorException ex){
+ log.error("异常信息:{}", ex.getMessage());
+ return Result.error(401,ex.getMessage());
+ }
+
+
+ /**
+ * 数据校验异常
+ * @param e
+ * @return
+ */
+ @ExceptionHandler(value = MethodArgumentNotValidException.class)
+ public Result errorHandler(MethodArgumentNotValidException e){
+// BindingResult bindingResult=exception.getBindingResult();
+ String message="";
+// String message=bindingResult.getAllErrors().stream().map(DefaultMessageSourceResolvable::getDefaultMessage).collect(Collectors.joining());
+// for(ObjectError s:e.getAllErrors()){
+// message+=s.getDefaultMessage();
+// break;
+// }
+ message= String.valueOf(e.getAllErrors().get(0).getDefaultMessage());
+
+ log.info("数据校验错误:{}",message);
+ return Result.error(message);
+ }
+
+ /**
+ * 处理sql异常
+ * @param ex
+ * @return
+ */
+ @ExceptionHandler
+ public Result exceptionHandler(SQLIntegrityConstraintViolationException ex){
+
+ //Duplicate entry 'zhangsan' for key 'idx_username'
+ String message = ex.getMessage();
+ if (message.contains("Duplicate entry")){
+ String[] split = message.split(" ");
+ String username=split[2];
+ String msg=username+ MessageConstant.ALREADY_EXISTS;
+ return Result.error(msg);
+ }else {
+ log.error(message,ex);
+ return Result.error(MessageConstant.UNKNOWN_ERROR);
+ }
+
+ }
+
+
+
+
+}
\ No newline at end of file
--
Gitblit v1.7.1