Rexx - 错误处理



Rexx 也有能力像其他编程语言一样处理错误。

以下是 Rexx 中的一些常见错误情况。

  • ERROR − 当发送到操作系统的命令导致错误时,将引发此事件。

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

  • HALT − 通常在某个操作依赖于另一个操作时引发。例如,如果 I/O 操作因任何原因被停止。

  • NOVALUE − 当变量未赋值时,将引发此事件。

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

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

  • LOSTDIGITS − 当算术运算在操作过程中导致数字丢失时,将引发此事件。

捕获错误

可以使用 signal 命令捕获错误。让我们看一下它的语法和示例。

语法

signal on [Errorcondition]

其中,

  • Errorcondition − 上述错误条件。

示例

让我们看一个示例。

/* Main program */ 
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.

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

/* Main program */ 
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
广告