错误代码参数格式

大多数 IBM i API 都包含错误代码参数,用于向应用程序返回错误代码和异常数据。

错误代码参数可以是以下变量长度结构之一: 格式 ERRC0100 或格式 ERRC0200。

在格式 ERRC0100中,一个字段是 INPUT 字段; 它控制是将异常返回到应用程序还是使用异常信息填充错误代码结构。 当提供的字节字段大于或等于 8 时,将使用与错误关联的 OUTPUT 异常信息来填充错误代码结构的其余部分。 如果提供的 INPUT 字段的字节数为零,那么将忽略所有其他字段并返回异常。

如果 API 调用者需要可转换字符 (CCHAR) 支持,那么必须使用格式 ERRC0200 。 格式 ERRC0200 包含两个 INPUT 字段。 第一个字段 (称为关键字段) 必须包含 -1 才能使用 CCHAR 支持。 当提供的字节字段大于或等于 12 时,将使用与错误关联的 OUTPUT 异常信息来填充错误代码结构的其余部分。 如果提供的 INPUT 字段的字节数为零,那么将忽略所有其他字段并返回异常。

对于某些 API ,错误代码参数是可选的。 如果未对可选错误代码参数进行编码,那么 API 将返回诊断和转义消息。 如果对可选错误代码参数进行编码,那么 API 仅返回脱离消息或错误代码; 它从不返回诊断消息。

下表显示了错误代码参数的结构。 这些字段在表后进行了详细描述。
注: 两种格式的错误代码结构都在 QSYSINC 库中的 QUSEC include 文件中提供。 包含文件存在于以下源物理文件中 :QRPGSRC , QRPGLESRC , QLBLSRC , QCBLLESRC 和 H。

格式 ERRC0100

表 1. 错误代码参数的格式 ERRC0100
偏移 使用 类型 字段
Dec 十六进制
0 0 INPUT BINARY(4) 提供的字节数
4 4 OUTPUT BINARY(4) 可用字节数
8 8 OUTPUT CHAR(7) 异常标识
15 F OUTPUT CHAR (1) 保留
16 10 OUTPUT CHAR(*) 异常数据

格式 ERRC0200

表 2。 错误代码参数的格式 ERRC0200
偏移 使用 类型 字段
Dec 十六进制
0 0 INPUT BINARY(4) 代号
4 4 INPUT BINARY(4) 提供的字节数
8 8 OUTPUT BINARY(4) 可用字节数
12 C OUTPUT CHAR(7) 异常标识
19 13 OUTPUT CHAR (1) 保留
20 14 OUTPUT BINARY(4) CCHAR 数据的 CCSID
24 18 OUTPUT BINARY(4) 异常数据的偏移量
28 1C OUTPUT BINARY(4) 异常数据的长度
    OUTPUT CHAR(*) 异常数据

字段描述

错误代码结构中的字段按字母顺序描述。

可用字节数。 可供 API 返回的错误信息的长度 (以字节为单位)。 如果是 0 ,那么不会检测到任何错误,并且不会更改结构中此字段后面的任何字段。

提供的字节数。 调用应用程序为错误代码提供的字节数。 如果 API 调用者正在使用格式 ERRC0100,那么提供的字节必须是 0 , 8 或大于 8。 如果指定超过 32 783 字节 (对于异常数据为32KB ,对于其他字段为 16 字节) ,那么这不是错误,但只能在异常数据中返回 32 767 字节 (32KB)。

如果 API 调用者正在使用格式 ERRC0200,那么提供的字节必须是 0 , 12 或大于 12。 如果指定超过 32 799 字节 (对于异常数据为32KB ,对于其他字段为 32 字节) ,那么这不是错误,但在异常数据中只能返回 32 767 字节 (32KB)。

表 3. 提供的字节的可能值
字节 描述
0 如果发生错误,将向应用程序返回异常以指示请求的功能失败。
> = 8 如果发生错误,那么将使用异常信息填充空间。 未返回异常。 这仅适用于格式 ERRC0100。
> =12 如果发生错误,那么将使用异常信息填充空间。 未返回异常。 对于格式 ERRC0100 和 ERRC0200,会发生此情况。

CCHAR 数据的 CCSID。 异常数据的可转换字符 (CCHAR) 部分的编码字符集标识 (CCSID)。

表 4. CCHAR 数据的 CCSID 的可能值
CCSID 描述
0 缺省作业 CCSID。
CCSID 有效的 CCSID 编号。 有效的 CCSID 范围是 1 到 65535 ,但不是 65534。

异常数据。 包含与异常标识关联的插入数据的变长字符字段。

异常标识。 错误条件的消息的标识。

键。 如果使用了 CCHAR 支持,那么这是用于启用消息处理程序错误函数的键值。 如果期望 CCHAR 支持,那么此值应该为 -1。

异常数据的长度。 错误代码中返回的异常数据的长度 (以字节计)。

异常数据的偏移量。 从错误代码结构开始到错误代码结构中的异常数据的偏移量。

保留。 1 字节保留字段。