OnErr

用于设置发生错误时将控制分支给错误处理子例程的中断。这样用户就可处理错误。

格式
OnErr GoTo { 标签 | 0}​

参数

标签
指定发生错误时移交目标的语句标签。
0
指定清除OnErr设置的参数。

说明
用户可利用OnErr进行错误处理。如果未使用OnErr,发生错误时任务则会被中止,并显示错误。而如果使用OnErr,则可将控制移交给错误处理子例程,以便自动从错误恢复过来。错误恢复之后,控制移交给由EResume命令指定的返回目标。这样,即使发生错误,也可以自动进行错误处理,不必中断任务的执行。另外,由于始终按相同的方式自动处理容易复杂化的问题,因此,可更顺利地发挥工作单元的作用。

利用OnErr命令指定并设置参数“0”时,当前的OnErr设置则被清除。(执行OnErr 0之后,如果发生错误,则停止执行程序。)

参阅
Err、EResume

OnErr使用示例
在如下所示的简单实用程序示例中,检查点数据P0-P399是否存在。如果不存在点数据,画面中则会显示“该点不存在”的信息。该程序使用CX命令来测试是否定义了点。如果未定义,则将控制移交给错误处理子例程,并在画面中显示未定义的点。

Function errDemo
    Integer i, errNum

    OnErr GoTo errHandler

    For i = 0 To 399
        temp = CX(P(i))
    Next i
    Exit Function
    '
    '
    '*********************************************
    '* Error Handler                             *
    '*********************************************
errHandler:
    errNum = Err
    '确认是否使用未定义点
    If errNum = 7007 Then
       Print "Point number P", i, " is undefined!"
    Else
       Print "ERROR: Error number ", errNum, " occurred while"
       Print "       trying to process point P", i, " !"
    EndIf
    EResume Next
Fend