例: Handling run-time errors

  1. 次の例は、最も簡単なエラー処理プログラムの例です。最初のステートメントはすべてのエラーの処理プログラムを確立します。この処理プログラムはエラー番号とメッセージを出力して終了します。ユーザーが存在しないファイル名を入力すると、「Set dc = db.AllDocuments」の部分でエラーが発生します。
    Sub Initialize
      On Error Goto processError
      Dim dc As NotesDocumentCollection
      Dim db As New NotesDatabase("", _
      Inputbox("Database?"))
      Set dc = db.AllDocuments
      Exit Sub
    processError:
      Messagebox "Error " & Err() & ": " & Error()
      Exit Sub
    End Sub
  2. 次の例は、誤ったファイル名を指定したために開いていない NotesDatabase オブジェクトを使おうとしたときに発生するエラーをトラップします。また、他のエラーも処理します。ユーザーが誤った名前を入力した場合、エラー処理プログラムはユーザーに再試行かキャンセルを選択させます。再試行の場合は、このエラー処理プログラムは Open メソッドを呼び出して、メインのコードの実行を再開します。
    (Declarations)
    %INCLUDE "lsconst.lss"
    %INCLUDE "lsxbeerr.lss"
    Sub Initialize
      On Error Goto processError
      On Error lsERR_NOTES_DATABASE_NOTOPEN _
      Goto processNotOpen
      Dim dc As NotesDocumentCollection
      Dim db As New NotesDatabase("", Inputbox("Database?"))
      Set dc = db.AllDocuments
      Exit Sub
    processNotOpen:
      reply = Messagebox _
      ("Database name is wrong", MB_RETRYCANCEL)
      If reply = IDRETRY Then
        Call db.Open("", Inputbox("Database?"))
        再開
      Else
        Messagebox "Error " & Err() & ": " & Error()
        Exit Sub
      End If
    processError:
      Messagebox "Error " & Err() & ": " & Error()
      Exit Sub
    End Sub
  3. 次の例は、New メソッドと IsOpen プロパティの結果をテストします。
    (Declarations)
    %INCLUDE "lsconst.lss"
    Sub Initialize
      Dim dc As NotesDocumentCollection
      Dim db As New NotesDatabase("", _
      Inputbox("Database?"))
      Do While Not db.IsOpen
        reply = Messagebox _
        ("Database name is wrong", MB_RETRYCANCEL)
        If reply = IDRETRY Then
          Call db.Open("", Inputbox("Database?"))
        Else
          Messagebox "Database can't be opened"
          Exit Sub
        End If
      Loop
      Set dc = db.AllDocuments
    End Sub
  4. 次の例は、戻り値を調べて Open メソッドの結果をテストします。
    (Declarations)
    %INCLUDE "lsconst.lss"
    Sub Initialize
      Dim dc As NotesDocumentCollection
      Dim db As New NotesDatabase("", "")
      Do While Not db.Open("", Inputbox("Database?"))
        reply = Messagebox _
        ("Database name is wrong", MB_RETRYCANCEL)
        If reply <> IDRETRY Then
          Messagebox "Database can't be opened"
          Exit Sub
        End If
      Loop
      Set dc = db.AllDocuments
    End Sub