From 06d4c799b22254b248250b814041e1f8b9b15044 Mon Sep 17 00:00:00 2001 From: dengqichen Date: Thu, 20 Nov 2025 14:04:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9E=84=E5=BB=BA=E9=80=9A?= =?UTF-8?q?=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../delegate/HttpRequestNodeDelegate.java | 29 +++++++++++++++---- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/delegate/HttpRequestNodeDelegate.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/delegate/HttpRequestNodeDelegate.java index e08fb3b1..dc8653b0 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/delegate/HttpRequestNodeDelegate.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/delegate/HttpRequestNodeDelegate.java @@ -139,7 +139,9 @@ public class HttpRequestNodeDelegate extends BaseNodeDelegate + * 业务失败:设置完整的 output 信息后抛出异常,由 BaseNodeDelegate 根据 continueOnFailure 决定是否继续 */ private void handleHttpError(Exception e, long responseTime) { HttpStatusCode statusCode = null; @@ -155,36 +157,51 @@ public class HttpRequestNodeDelegate extends BaseNodeDelegate + * 技术异常:设置基本的 output 信息后抛出异常,由 BaseNodeDelegate 根据 continueOnFailure 决定是否继续 */ private void handleGeneralError(Exception e) { + // 设置基本的 output 信息(即使是网络异常也要设置,方便模板访问) output.setIsSuccess(false); + output.setStatusCode(0); // 0 表示未获取到 HTTP 状态码 output.setErrorMessage(e.getMessage()); + output.setResponseBody(null); String errorMsg = String.format("HTTP请求异常: %s - %s", e.getClass().getSimpleName(), e.getMessage()); - // 不在这里记录日志,由BaseNodeDelegate统一处理(避免重复记录) - // 直接抛出异常,由BaseNodeDelegate统一处理continueOnFailure逻辑 + logInfo(errorMsg); + + // 抛出异常,由 BaseNodeDelegate 根据 continueOnFailure 决定: + // - continueOnFailure=true: 调用 markFailure(e),设置 output.status=FAILURE,保存 output,继续执行 + // - continueOnFailure=false: 调用 terminateWorkflow(e),抛出 BpmnError,终止工作流 throw new RuntimeException(errorMsg, e); }