简介
错误捕获(Try-Catch)组件由一个执行子流和一个或多个捕获错误子流组成。通过配置,可以捕获执行子流运行时抛出的错误和系统错误,也可与抛出错误组件搭配使用,捕获用户自定义错误。如果执行子流发生错误,将运行第一个匹配的捕获错误子流,如果没有匹配,则抛出错误到外层。
操作指引
连接说明
无
参数配置
参数 | 数据类型 | 描述 | 是否必填 | 默认值 |
事务 | 枚举(无;本地事务) | 和 Database 组件搭配使用,执行失败时回滚数据库操作 | 是 | 无 |
错误类型 | string | 子流执行过程中抛出的错误类型,通过下拉列表选择,支持任意多选,支持选择全部错误或者某一类错误 | 是 | 无 |
重试次数 | int | 发生此类错误时重试执行子流的次数(0-5次),每个捕获错误单独统计 | 是 | 不重试 |
重试间隔 | int | 重试时两次执行的间隔(1-300秒) | 否 | 60 |
事务在开启错误捕获节点配置。
错误类型和重试在捕获错误节点配置。
数据预览
无
输入到子流中的 message
message 属性 | 值 |
payload | 继承错误捕获上一个组件的 payload |
error | 继承错误捕获上一个组件的 error |
attribute | 继承错误捕获上一个组件的 attribute |
variable | 继承错误捕获上一个组件的 variable |
输出
组件输出的 message 信息如下:
message 属性 | 值 |
payload | 若执行子流正常运行,payload 的结果为执行子流输出的 payload。 若抛出错误,且错误被捕获,则 payload 的结果为捕获错误子流输出的 payload。 若抛出的错误未被捕获,则子流终止运行。 |
error | 若执行子流抛出错误,且未被捕获,或者捕获错误子流中抛出错误,则 error 保存了错误信息,为 dict 类型,包含“Code”和“Description”字段:“Code”字段表示错误类型,“Description”字段表示错误描述。 否则 error 为空。 |
attribute | 若执行子流正常运行,attribute 的结果为执行子流输出的 attribute。 若抛出错误,且错误被捕获,则 attribute 的结果为捕获错误子流输出的 attribute。 若抛出的错误未被捕获,则子流终止运行。 |
variable | 若执行子流正常运行,variable 的结果为子流输出的 variable。 若抛出错误,且错误被捕获,则 variable 的结果为捕获错误子流输出的 variable。 若抛出的错误未被捕获,则子流终止运行。 |
案例
1. 新增自定义错误类型请求失败。
2. 当请求失败时,抛出该错误。
3. 捕获该错误,执行重试策略,会重新执行执行子流中的 HTTP 请求,条件判断。重试后仍失败,则记录日志。