Err Object
Description
Err オブジェクトはグローバル・スコープの内部オブジェクトです。インスタンスを生成する必要はありません。Err オブジェクトは実行時エラーに関する情報を含み、実行時エラーを生成する Raise メソッドと、エラーをクリアする Clear メソッドを提供します。
Err オブジェクトのプロパティはエラーの生成元が設定します。つまり、Caché Basic の実行時システムがエラーの状態に応じて設定するか、Raise メソッドを呼び出したプログラムが設定します。
実行時エラーの発生時、Err オブジェクトのプロパティには、エラーの状態を一意に識別する情報と、その説明情報が入力されます。
Err オブジェクトは、Basic のプログラムの任意の場所から参照可能ですが、含んでいるのは最後のエラーのデータのみです。
プロパティ
これらのプロパティには数値または文字列リテラルを指定するか、またはリテラルに解決される式を指定できます。
番号
エラー・コードを一意に定義する番号です。番号 1 から 512 は、システムにより生成された実行時エラーを表すために、Caché Basic により予約されています。513 以上の番号はプログラマ用の番号です。
説明
エラーの種類を説明するテキストの記述です。
ソース
エラーの発生源についてのテキストの記述です。エラーが発生したプログラムの名前である場合や、または、オブジェクトの名前である場合もあります。可能な場合、エラーが発生したコード内の場所も指定します。
メソッド
Clear()
エラーの状態をクリアし、オブジェクトのプロパティを空の文字列に設定します。Clear メソッドは引数を取りません。括弧の使用はオプションです。
Raise(number [,description [,source]])
このメソッドは、ユーザ定義の例外を生成します。
Raise メソッドには以下の引数があります。
number | エラー番号。 |
description | オプション — エラーの説明。 |
source | オプション — エラーに関係する場所。 |
Raise メソッドを使用して例外を生成すると、Err オブジェクトのプロパティはまずクリアされ、次に対応する引数が設定されます。
Raise メソッドと Err オブジェクトは通常 TRY 文および CATCH 文と共に使用されます。
例
以下の例では、Err.Raise メソッドを使用してエラーを生成します。エラーの引数を表示した後、Err.Clear メソッドを使用してこれらのエラー引数値をクリアします。
Main:
On Error Goto ErrorHandler
Println "before the error"
Err.Raise(100,"Deliberate Error","Main line 3")
Println "after the error" ' should not print
ErrorHandler:
Println "Error1: ", Err.Number, " ", Err.Description," ", Err.Source
Err.Clear()
Println "Error2: ", Err.Number, " ", Err.Description," ", Err.Source
以下の例は、関数での Err オブジェクトの使用方法を示しています。
Println ErrorTest(1)
Println ErrorTest(0)
Function ErrorTest(Arg)
On Error Goto ErrorHandler
return 1/Arg
ErrorHandler:
Println "Error ", Err.Number, " ", Err.Description," ", Err.Source
Err.Clear()
return 0
End Function