From ae4c7ab34a9011e54088f8e689c0f4f781881a41 Mon Sep 17 00:00:00 2001 From: -LAN- Date: Fri, 18 Jul 2025 02:55:15 +0800 Subject: [PATCH] refactor: Refactors error handling in WorkflowNodeRunFailedError Signed-off-by: -LAN- --- api/core/workflow/errors.py | 8 ++++---- api/core/workflow/workflow_entry.py | 4 ++-- api/services/workflow_service.py | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/api/core/workflow/errors.py b/api/core/workflow/errors.py index d57a0b8183..594bb2b32e 100644 --- a/api/core/workflow/errors.py +++ b/api/core/workflow/errors.py @@ -2,7 +2,7 @@ from core.workflow.nodes.base import BaseNode class WorkflowNodeRunFailedError(Exception): - def __init__(self, node: BaseNode, error: str): - self.node = node - self.error = error - super().__init__(f"Node {node.title} run failed: {error}") + def __init__(self, node: BaseNode, err_msg: str): + self._node = node + self._error = err_msg + super().__init__(f"Node {node.title} run failed: {err_msg}") diff --git a/api/core/workflow/workflow_entry.py b/api/core/workflow/workflow_entry.py index 9af5181626..d2375da39c 100644 --- a/api/core/workflow/workflow_entry.py +++ b/api/core/workflow/workflow_entry.py @@ -193,7 +193,7 @@ class WorkflowEntry: generator = node.run() except Exception as e: logger.exception(f"error while running node, {workflow.id=}, {node.id=}, {node.type_=}, {node.version()=}") - raise WorkflowNodeRunFailedError(node=node, error=str(e)) + raise WorkflowNodeRunFailedError(node=node, err_msg=str(e)) return node, generator @classmethod @@ -296,7 +296,7 @@ class WorkflowEntry: return node, generator except Exception as e: logger.exception(f"error while running node, {node.id=}, {node.type_=}, {node.version()=}") - raise WorkflowNodeRunFailedError(node=node, error=str(e)) + raise WorkflowNodeRunFailedError(node=node, err_msg=str(e)) @staticmethod def handle_special_values(value: Optional[Mapping[str, Any]]) -> Mapping[str, Any] | None: diff --git a/api/services/workflow_service.py b/api/services/workflow_service.py index a3de1c981f..e31f77607a 100644 --- a/api/services/workflow_service.py +++ b/api/services/workflow_service.py @@ -509,10 +509,10 @@ class WorkflowService: ) error = node_run_result.error if not run_succeeded else None except WorkflowNodeRunFailedError as e: - node = e.node + node = e._node run_succeeded = False node_run_result = None - error = e.error + error = e._error # Create a NodeExecution domain model node_execution = WorkflowNodeExecution(