Rexx - 错误处理

Rexx 还能够像其他编程语言一样进行错误处理。

以下是 Rexx 中出现的一些各种错误情况。

  • ERROR − 每当发送到操作系统的命令导致错误时,甚至会引发此错误。

  • FAILURE − 每当发送到操作系统的命令导致失败时,就会引发此事件。

  • HALT − 当一个操作依赖于另一个操作时,通常会引发此错误。 例如,如果 I/O 操作因任何原因而停止。

  • NOVALUE − 当值尚未分配给变量时会引发此事件。

  • NOTREADY − 这是由任何未准备好接受任何操作的 I/O 设备引发的。

  • SYNTAX − 如果代码中存在任何语法错误,则会引发此事件。

  • LOSTDIGITS − 当算术运算导致运算期间数字丢失时,将引发此事件。

捕获错误

借助信号命令捕获错误。 让我们看一下语法和示例。

语法

signal on [Errorcondition]

其中,

  • Errorcondition − 这是上面给出的错误情况。

示例

让我们看一个关于此的示例。

/* 主程序 */
signal on error 
signal on failure 
signal on syntax 
signal on novalue beep(1) 
signal off error 
signal off failure
signal off syntax 
signal off novalue 
exit 0 
error: failure: syntax: novalue: 
say 'An error has occured'

在上面的例子中,我们首先打开错误信号。 然后我们添加一条会导致错误的语句。 然后,我们使用错误陷阱标签来显示自定义错误消息。

上述程序的输出如下所示。

An error has occurred.

以下程序显示了错误代码的示例。

/* 主程序 */
signal on error 
signal on failure 
signal on syntax 
signal on novalue beep(1) 
exit 0 
error: failure: syntax: novalue: 

say 'An error has occured' 
say rc 
say signal 

上述程序的输出如下所示。

An error has occured 
40 
6