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