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