错误捕获(Try-Catch)

最近更新时间:2024-01-19 11:45:31

我的收藏

简介

错误捕获(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 请求,条件判断。重试后仍失败,则记录日志。