文件异常/错误

文件异常/错误的一些示例包括: 未定义的记录类型,触发器程序中的错误,对已关闭文件的 I/O 操作,设备错误以及数组/表装入顺序错误。 可以通过下列其中一种方式来处理这些问题:
  • 可以指定操作码扩展器 "E"。 指定时,在操作开始之前,此扩展器会将 %ERROR 和 %STATUS 内置函数设置为返回零。 如果在操作期间发生异常/错误,那么在操作 %ERROR 返回 "1" 后, %STATUS 返回文件状态。 将使用异常/错误信息更新可选文件信息数据结构。 您可以通过测试 %ERROR 和 %STATUS 来确定要执行的操作。
  • 可以在操作码的计算规范的位置 73 和 74 中指定指示符。 如果在处理指定操作期间发生异常/错误,那么将设置此指示符。 可选的 文件信息数据结构 将使用异常/错误信息进行更新。 您可以通过测试指示符来确定要执行的操作。
  • ON-ERROR 组可用于处理 MONITOR 块中处理的语句的错误。 如果在处理语句时发生错误,那么控制权将传递到相应的 ON-ERROR 组。
  • 您可以创建用户定义的 ILE 异常处理程序,该处理程序将在发生异常时进行控制。 有关更多信息,请参阅 Rational® Development Studio for i: ILE RPG Programmer 's Guide
  • 可以为循环模块中的全局文件指定 文件异常/错误子例程 。 子例程由文件描述规范上的 INFSR 关键字定义,该子例程具有要接收控制的子例程的名称。 通过在文件描述规范上使用 INFDS 关键字指定的文件信息数据结构提供有关文件异常/错误的信息。 您还可以使用 %STATUS 内置函数,该函数将返回为程序或文件状态设置的最新值。 如果指定了文件,那么 %STATUS 将返回指定文件的 INFDS *STATUS 字段中包含的值。
  • 如果指示符 'E' 扩展器, MONITOR 块 或文件异常/错误子例程不存在,那么任何文件异常/错误都由 RPG IV 缺省错误处理程序处理。