From 9626d39c19a4c38b1a18b378ffe0e726fa13ee1c Mon Sep 17 00:00:00 2001 From: zhuangtianxiang <2913129173@qq.com> Date: Thu, 8 May 2025 16:31:36 +0800 Subject: [PATCH] =?UTF-8?q?refactor(exception):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 ExceptionUtil工具类,用于统一处理异常 - 在 V1DatasetController 中使用 ExceptionUtil.difyException 方法包裹可能抛出异常的代码 - 移除 V1ChatController 中未使用的 Mono 导包 - 删除 ApiExceptionHandler 中的 TODO 注释 --- .../dify/exception/ApiExceptionHandler.java | 2 +- .../zsc/edu/dify/exception/ExceptionUtil.java | 18 ++++++++++++++++++ .../dify/controller/V1ChatController.java | 1 - .../dify/controller/V1DatasetController.java | 5 ++++- 4 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/zsc/edu/dify/exception/ExceptionUtil.java diff --git a/src/main/java/com/zsc/edu/dify/exception/ApiExceptionHandler.java b/src/main/java/com/zsc/edu/dify/exception/ApiExceptionHandler.java index 1f93af1..ef4ace2 100644 --- a/src/main/java/com/zsc/edu/dify/exception/ApiExceptionHandler.java +++ b/src/main/java/com/zsc/edu/dify/exception/ApiExceptionHandler.java @@ -64,5 +64,5 @@ public class ApiExceptionHandler { log.error("ApiException: {}", objectMapper.writeValueAsString(Map.of("msg", ex.getMessage()))); return new ResponseEntity<>(objectMapper.writeValueAsString(Map.of("msg", ex.getMessage())), HttpStatus.INTERNAL_SERVER_ERROR); } -//TODo 403报错修改 + } diff --git a/src/main/java/com/zsc/edu/dify/exception/ExceptionUtil.java b/src/main/java/com/zsc/edu/dify/exception/ExceptionUtil.java new file mode 100644 index 0000000..fa5af7d --- /dev/null +++ b/src/main/java/com/zsc/edu/dify/exception/ExceptionUtil.java @@ -0,0 +1,18 @@ +package com.zsc.edu.dify.exception; + +import org.springframework.stereotype.Component; + +import java.util.function.Supplier; + +@Component +public class ExceptionUtil { + + public static T difyException(Supplier supplier) throws ApiException { + try { + return supplier.get(); + } catch (RuntimeException e) { + System.err.println(e.getMessage()); + throw new ApiException("服务器错误"); + } + } +} diff --git a/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1ChatController.java b/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1ChatController.java index c08cbb9..375f312 100644 --- a/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1ChatController.java +++ b/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1ChatController.java @@ -14,7 +14,6 @@ import org.springframework.http.MediaType; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import reactor.core.publisher.Flux; -import reactor.core.publisher.Mono; /** * @author yanghq diff --git a/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1DatasetController.java b/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1DatasetController.java index ee56a4a..a2d9a23 100644 --- a/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1DatasetController.java +++ b/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1DatasetController.java @@ -1,5 +1,8 @@ package com.zsc.edu.dify.modules.dify.controller; +import com.zsc.edu.dify.exception.ApiException; +import com.zsc.edu.dify.exception.ConstraintException; +import com.zsc.edu.dify.exception.ExceptionUtil; import com.zsc.edu.dify.modules.operationLog.entity.OperationLogAnnotation; import io.github.guoshiqiufeng.dify.core.pojo.DifyPageResult; import io.github.guoshiqiufeng.dify.dataset.DifyDataset; @@ -43,7 +46,7 @@ public class V1DatasetController { @PreAuthorize("hasAuthority('dify:dataset:create')") @OperationLogAnnotation(content = "'dify知识库文档'", operationType = "新建") public DocumentCreateResponse createDocumentByFile(DocumentCreateByFileRequest request){ - return difyDataset.createDocumentByFile(request); + return ExceptionUtil.difyException(() -> difyDataset.createDocumentByFile(request)); } /**