ランタイムエラーを処理する

エラーメッセージの一覧については、「ファイルの内容」を参照してください。

Domino Designer のメソッドは、さまざまな状況を示すためにランタイムエラーを発生させます。エラーを処理するには、エラー処理ルーチンをインクルードしなければなりません。エラー処理ルーチンをインクルードしないと、エラーが発生したときにスクリプトは終了してしまいます。

メソッドによっては、状況を示すために、オブジェクトハンドルとしてステータス値や Nothing を返すものがあります。このような場合は、処理を進める前に戻り値をチェックできます。プロパティにもステータスを示すものがあり、ステータス値に影響するメソッドを呼び出した後でこのようなプロパティをチェックできます。

例えば、NotesDatabase の New メソッドや Open メソッドの失敗は、次のいずれかの指標によって検出します。

  • データベースが開いている必要があるメソッドでオブジェクトを使おうとすると、エラー lsERR_NOTES_DATABASE_NOTOPEN (4063) が発生します。このエラーは、データベースを開こうとしたときではなく、データベースを開く試みの後でオブジェクトを使おうとしたときに発生します。オブジェクトのプロパティを使用する場合、エラーは発生しません。
  • オブジェクトのプロパティ IsOpen が False になります。
  • Open メソッドを使用した場合、戻り値は False になります。

LotusScript® は、ファイルエラーや算術例外などさまざまな状況でランタイムエラーを発生させます。エラーの発生によってスクリプトを終了させたくない場合は、これらのエラーを処理しなければなりません。

すべてのエラーをトラップするには、すべての実行可能ステートメントの前に、エラー番号を指定せずに On Error ステートメントを記述します。特定のエラーをトラップするには、エラーを発生させる可能性のあるステートメントの前に、エラー番号を指定して On Error ステートメントを記述します。エラー番号を指定した On Error ステートメントは、エラー番号を指定しない On Error ステートメントの後に記述しなければなりません。例えば、lsERR_NOTES_DATABASE_NOTOPEN、ErrObjectVariableNotSet、その他のエラーをトラップする場合は、次の順序で On Error ステートメントを記述する必要があります。

On Error Goto processError
On Error lsERR_NOTES_DATABASE_NOTOPEN Goto _
processErrDatabaseDoesNotExist
On Error ErrObjectVariableNotSet Goto processErrObjectVariableNotSet

エラー定数は、Domino Designer のデータディレクトリにある次のファイルで定義されています。エラー定数にアクセスするには、適切なファイルをオブジェクトの (Declarations) イベントにインクルードしなければなりません。%include ステートメントを使用してスクリプトライブラリを作成し、そのスクリプトライブラリを options セクションで使用できます。

  • LSXBEERR.LSS では、Domino Designer のバックエンドメソッドで発生するエラーの定数が定義されています。
  • LSXUIERR.LSS では、Domino Designer のフロントエンド (UI) メソッドで発生するエラーの定数が定義されています。
  • LSERR.LSS では、LotusScript で発生するエラーの定数が定義されています。
  • lsconst.lss では、LotusScript のステートメントや関数の引数として使用する定数が定義されています。