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