実行時エラー(ランタイムエラー)が発生したときにどうするのか?というものです。
Lotus Script 言語
- Err : エラーが発生すると、エラー番号(数値)が入ります
- Erl : エラーが発生すると、ソースコードの何行目という場所(数値)が入ります
- Error : エラーが発生すると、エラーメッセージが入ります
エラーが発生したときにどうするか定義します
On Error Resume Next
On Error Goto ラベル
例:
On Error Goto ラベル 処理 Exit Sub ' または Exit Function や Exit Property ラベル: エラー処理 Resume Next ’ エラーの次の行へ戻る
エラーが発生したときに『何もせず異常終了する』というときは次のようにします。この行より先はエラー対応をしません。
On Error Goto 0
似ている命令
On 番号 Goto ラベル1, ラベル2, ... ’ 番号によって異なるラベルへ制御を移す命令です。番号がゼロのときは何もしません
例 : On Err Goto ラベル ’ Err 変数の値(初期値は0)によってラベルへ制御を移します
※On 番号 Gosub ラベル, ・・・もあります。
VbScript 言語
- Err.Number : エラーが発生すると、エラー番号(数値)が入ります
- Err.Source : エラーが発生した場所の名前が入ります
- Err.Description : エラーが発生すると、エラーメッセージが入ります
初期化
Call Err.Clear ()
※ On Error や Exit でも Err が初期化されます
On Error は Resume Next だけで、On Error Goto は使えません
On Error Resume Next
注意
最初の On Error より前は Err オブジェクトが存在しません
例:
On Error Resume Next
Call Err.Clear ()
処理
If 0 <> Err.Number Then
エラー処理
Call Err.Clear ()
End If
Lotus 式言語
- @IsError (評価式) : 評価式がエラーを返すと @True になります
- @IfError : 廃止されました。「何がエラーなのか」というところが @IsError と異なりました
例 : @If (@IsError (評価式); エラー時の式; 正常時の式);