Err,Erl,Error : エラーを処理

この記事は約2分で読めます。

 実行時エラー(ランタイムエラー)が発生したときにどうするのか?というものです。

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 (評価式); エラー時の式; 正常時の式);

タイトルとURLをコピーしました