
# 异常
异常节点功能，当工作流运行遇到业务异常时，通过本节点终止流程，并向用户或上游系统返回预设的错误信息和异常码，便于定位问题和后续处理。
**核心价值与适用场景：**
使用异常节点，是为了在遇**到** **不可恢复的错误**时，快速失败并明确告知原因，避免产生脏数据。
表1异常节点使用场景 
| 场景分类   | 示例                    | 处理建议                          |
|:---|:---|:---|
| 前置校验失败 | 参数缺失、权限不足 (403)、签名错误。 | 必须使用异常节点，阻断后续逻辑。              |
| 外部依赖故障 | 插件API超时、数据库连接失败。      | 使用异常节点，并返回系统级错误码。             |
| 业务逻辑拒绝 | 余额不足、库存为 0。           | 可使用结束节点返回友好提示，或使用异常节点返回业务错误码。 |
   
#### 配置异常节点
**异常信息载体：**
异常节点要求输出内容必须符合**JSON格式** 。这确保了前端或上游系统能够通过程序解析错误原因，而不仅仅是弹出一个文本框。推荐的JSON结构如下：
```
{ 
  "code": "ERROR_CODE",     // 错误标识，供程序判断 
  "message": "Human readable error", // 错误描述，供展示 
  "details": { ... }        // (可选) 调试信息 
}
```
**配置方式：**
- **直接输入** ：适用于一次性的、简单的错误定义。单击右侧的![](https://support.huaweicloud.com/usermanual-agentarts0/zh-cn_image_0000002569344847.png)可以扩展内容输入框。示例如下：
  图1配置异常节点   
  ![](https://support.huaweicloud.com/usermanual-agentarts0/zh-cn_image_0000002569344823.png) 
- **插入消息模板：** 适用于企业级标准化的错误管理。当错误文案需要变更时（例如修改错别字），只需修改模板，所有引用该模板的节点会自动更新。
  - 前提：需在"资源管理"中预先创建好错误消息模板，具体请参见[消息模板](https://support.huaweicloud.com/usermanual-agentarts0/agentarts_05_0099.html)。
  
  - 操作：单击![](https://support.huaweicloud.com/usermanual-agentarts0/zh-cn_image_0000002538385118.png)图标，选择预设的异常，并单击"确定"。
   
#### 相关操作
- 单击节点名称，可修改节点名称。
- 单击![](https://support.huaweicloud.com/usermanual-agentarts0/zh-cn_image_0000002538385040.png)图标，可对节点进行重命名、复制或删除；也可以将节点连接到结束节点。
- 单击名称下面的节点说明，可修改节点的描述信息。
- 单击![](https://support.huaweicloud.com/usermanual-agentarts0/zh-cn_image_0000002538385044.png)图标，可查看文档信息。
 
#### 示例
以积分兑换场景为例，业务用户尝试兑换一个价值500积分的商品。系统需要检查用户当前积分，如果积分不足，中断流程并返回拒绝信息；如果积分足，则输出"请兑换商品"。
图2工作流   
![](https://support.huaweicloud.com/usermanual-agentarts0/zh-cn_image_0000002569424821.png)
工作流核心节点如[表2]所示。
 表2节点配置说明 
| 节点类型 | 说明                                                                                                                                                                                                                                                                                                                                                                                                               | 示例                                                                                                                                            |
|:---|:---|:---|
| 开始节点 | 使用系统默认配置query参数，表示用户输入的内容。                                                                                                                                                                                                                                                                                                                                                                                       |  ![](https://support.huaweicloud.com/usermanual-agentarts0/zh-cn_image_0000002569344837.png)                                            |
| 输入节点 | 此节点需要让用户输入当前的积分。 **输入参数**： - 参数名称：user_points  - 参数类型：Ingeter  - 描述：请输入您的积分。   |  ![](https://support.huaweicloud.com/usermanual-agentarts0/zh-cn_image_0000002569424817.png)                                            |
| 判断节点 | 此节点用来判断用户输入的积分是否小于500，小于500则执行IF执行，大于等于500则执行ElSE分支。                                                                                                                                                                                                                                                                                                                                                             |  ![](https://support.huaweicloud.com/usermanual-agentarts0/zh-cn_image_0000002569424809.png)  |
| 异常节点 | 当判断用户积分小于500时，此节点抛出异常信息并终止流程。 异常码填写如下： ``` { "code": "POINTS_INSUFFICIENT", "msg":"您的积分不足，无法兑换该商品" } ```                                                                                                                                                                                                                                                                    |  ![](https://support.huaweicloud.com/usermanual-agentarts0/zh-cn_image_0000002569344827.png)                                            |
| 消息节点 | 当判断用户积分小于500时，此节点输出：请兑换商品。 指定回复：请兑换商品                                                                                                                                                                                                                                                                                                                                         |  ![](https://support.huaweicloud.com/usermanual-agentarts0/zh-cn_image_0000002538545068.png)   |
| 结束节点 | 此节点用于结束流程。                                                                                                                                                                                                                                                                                                                                                                                                       |  ![](https://support.huaweicloud.com/usermanual-agentarts0/zh-cn_image_0000002538385132.png)                                            |
   
工作流运行的效果如[图3]所示。
图3效果示例   
![](https://support.huaweicloud.com/usermanual-agentarts0/zh-cn_image_0000002538385140.png)
#### 常见问题
- **异常节点和结束节点有什么区别？**
  - 结束节点：代表流程成功完成。
  
  - 异常节点：代表流程失败。在API调用模式下，通常会触发非200的状态响应或包含错误码的Payload。
   
- **异常节点后还能连接其他节点吗？**
  不能。异常节点是终结节点。一旦流程执行到此节点，实例将立即停止，后续任何节点都不会被执行。
  
- **如何在调试日志中快速定位异常？**
  建议在JSON中包含Trace ID或节点名称。例如："source": "check_balance_node"。这样在查看运行日志时，能一眼定位是哪个环节抛出的异常。
  
- **应该把所有错误都抛给用户吗？**
  不建议。对于系统级错误（如数据库连接失败），建议向用户返回友好的模糊提示（如"系统繁忙"），而将详细的堆栈信息（Stack Trace）记录在后台日志中，避免暴露系统安全细节。
  
 
