抛出异常

如果在您希望终止消息处理的消息流中检测到错误或其他情况,可以通过两种方式在消息流中抛出异常:

  1. 使用 ESQL THROW EXCEPTION 语句。

    在 Compute、Database 或 Filter 节点的 ESQL 模块中的任何地方包含 THROW 语句。使用有关语句的选项对要插入到异常中的您自己的数据进行编码。

  2. 在消息流中包含 THROW 节点。

    设置节点属性来标识异常的源和内容。

您可以使用语句选项或节点属性指定插入到消息文本中的消息标识和值,并对解释异常的用户给出其他信息和标识。您可以在代理可以使用的任何目录中指定任何消息。请参阅使用来自用户定义的扩展的事件日志,获取更多信息。

您可能要抛出异常的情况是由消息流的行为确定的;设计消息流时,您要确定此操作可能适当的位置。例如,您可能要检查输入消息的内容来确保它符合“输入节点无法检测到”这一标准(可能检查是否收到特定消息格式)。

下面的示例使用示例“发票消息”来显示可以如何使用 ESQL THROW 语句。如果要检查发票号是否在特定的范围内,则对所收到的不在有效范围内的任何发票消息抛出异常。

--Check for invoice number lower than permitted range
IF Body.Invoice.InvoiceNo < 100000 THEN
   THROW USER EXCEPTION CATALOG 'MyCatalog' MESSAGE 1234 VALUES
   ('Invoice number too low', Body.Invoice.InvoiceNo);

-- Check for invoice number higher than permitted range
ELSEIF Body.InvoiceNo > 500000 THEN
      THROW USER EXCEPTION CATALOG 'MyCatalog' MESSAGE 1235 VALUES
   ('Invoice number too high', Body.Invoice.InvoiceNo);

ELSE DO
  -- invoice number is within permitted range
  -- complete normal processing
ENDIF;
相关概念
消息流概述
ExceptionList 树结构
ESQL 概述
消息建模
相关任务
设计消息流
定义消息流内容
处理消息流中的错误
管理 ESQL 文件
相关参考
Compute 节点
Database 节点
Filter 节点
ESQL 引用
THROW 语句
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ac17150_