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