本主题包含以下部分:
使用 TryCatch 节点为异常处理提供特殊的处理程序。起先输入消息在此节点的 try 终端上路由,您必须连接到消息流的剩余非错误处理 节点。如果下游节点(可能是 Throw 节点)抛出异常,则 TryCatch 节点会将其捕获,并将原始消息路由到其 catch 终端。将 catch 终端进一步连接到其他节点以在异常发生后为消息提供错误处理。
通过该方法,异常会停止消息流处理,并不再影响任何进行中的事务。如果连接了 catch 输出终端,则将消息传播到那个终端。如果没有连接 catch 终端,则消息被废弃。
TryCatch 节点在工作台中由以下图标表示:
查看以下样本,了解如何使用此节点:
在使用 Compute 节点计算总和时使用 Throw 和 TryCatch 节点。您可以在总和计算超出“总计”字段的最大值时,创建发送给系统管理员的消息。
当您将 TryCatch 节点的实例放入消息流后,便可对它进行配置。
要进行配置,右键单击编辑器视图中的节点,然后单击属性。 会显示“描述”属性。
输入简短描述和/或详细描述。
单击应用在不关闭“属性”对话框的情况下更改 TryCatch 节点,或单击确定应用更改,同时关闭“属性”对话框。
单击取消以关闭对话框,并废弃对属性所作的所有更改。
现在,您必须连接节点的终端以确定它是如何在此消息流中操作的。
TryCatch 节点没有影响其操作的可配置属性。您通过将 output 终端连接到消息流中的一系列节点来确定它如何操作。
当在消息流中抛出异常时,无论通过显式使用 Throw 节点或 THROW ESQL 语句,还是在检测到错误(没有对消息流编程以进行处理)时通过代理提出隐式异常,控制都 返回到 TryCatch 节点。
通过 catch 终端传播消息并执行您设计的错误处理。通过此终端传播的消息具有在异常抛出时所含的内容,包括 ExceptionList 中 的全部异常描述。
在以下表中描述了 TryCatch 节点终端。
终端 | 描述 |
---|---|
In | 接受供节点处理的消息的输入终端。 |
Catch | 下游抛出异常并由此节点捕获时,消息将传播到的输出终端。 |
Try | 未捕捉到消息时,消息将传播到的输出终端。 |
下表描述该节点的属性;标题为 M 的列表示属性是否是必需的(如果在未定义缺省值时必须输入值,则在属性对话框上以星号作标记),标题为 C 的列表示属性是否是可配置的(将消息流添加到 BAR 文件以部署此文件时可以更改该值)。
下表描述 TryCatch 节点“描述”属性。
属性 | M | C | 缺省值 | 描述 |
---|---|---|---|---|
简短描述 | 否 | 否 | 节点的简要描述。 | |
详细描述 | 否 | 否 | 描述消息流中节点用途的文本。 |