7.1.14 On Error

機能
エラー発生時に,指定したラベルに制御を移すステートメントです。エラー発生時に,指定したラベルに制御を移さないようにすることもできます。
形式

On Error GoTo  LabelName

指定項目
LabelName
分岐先のラベル名を指定します。ラベル名には変数の名前付け規則に準じた名前を指定します。
LabelNameに0を指定すると,エラー発生時に,指定したラベルに制御が移らなくなります。
説明
On Errorステートメントは,ラベルの次の行から始まるエラー発生時の処理を有効にします。実行時にエラーが発生すると,ここで設定した分岐先に制御が移り,処理が実行されます。ただし,構文エラーが発生した場合には設定した分岐先には制御が移りません。分岐先のラベルはOn Errorステートメントと同じプロシージャ内に存在しなければなりません。
On Error GoTo 0を指定しなければ,ラベルの次の行から始まるエラー発生時の処理はプロシージャの終了時に自動的に無効になります。
補足
On Errorステートメントで指定したラベルに分岐する場合は,基本的に,実行エラーになりうるステートメントやコマンドが実行エラーとなったときです。
ただし,例外として以下の場合は実行エラーとなっても分岐しません。
  • TextReadコマンドで「ファイルの終わりに達した」のエラー時
  • WaitForExecコマンドで「タイムアウト時間を経過した」のエラー時
また,IsDefineコマンドやIsExistFileコマンドのように実行エラーになりえないコマンドはコマンドの戻り値にかかわらず分岐しません。

On Error GoTo ErrHandler '以降エラー発生時にラベルの次の行に制御が移る
 Copy ( InDir+"CTL3D32.DLL" ,OutDir+"CTL3D32.DLL" ,VersionUp )
   :
 On Error GoTo 0  '以降エラー発生時にラベルの次の行に制御を移さない
   :

ErrHandler:        'エラー発生時の分岐先
   :

対象バージョン
JP1/Script 05-00以降