タグ: Err.Description

  • [言語比較]Err,Erl,Error : エラーを処理

    [言語比較]Err,Erl,Error : エラーを処理

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

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