OnErr
エラー発生時に、エラー処理サブルーチンに制御を枝分かれさせる割込みを設定します。ユーザーがエラー処理できるようにします。
書式
OnErr GoTo {ラベル | 0}
パラメーター
- ラベル
- エラー発生時に移行する先のステートメントラベルを指定します。
- 0
- OnErr設定をクリアするパラメーターを指定します。
解説
OnErrによりユーザーはエラー処理を行うことができます。OnErrが使われていないと、エラー発生時にタスクは中止され、エラーが表示されます。しかし、OnErrを使うと、自動的にエラーから回復できるように、制御をエラー処理サブルーチンに移すことができます。エラーが回復すると、制御はEResume命令で指定する戻り先に移ります。これにより、エラーが発生してもタスクの実行を中断することなく、自動的にエラー処理を行うことができます。また、複雑になりやすい問題も、常に同じやり方で自動的に処理されるので、ワークセルを格段にスムースに働かせることができます。
OnErrコマンドがパラメーター"0"を指定して設定された場合は、現在のOnErr設定はクリアされます。(OnErr 0実行後、もしエラーが発生すると、プログラムの実行は停止されます。)
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