Error オブジェクト
エラーに関する情報を格納します。 Error コンストラクターには、次の 2 つの形式があります。
function Error([description : String ])
function Error([number : Number [, description : String ]])
引数
number
省略可能です。 number プロパティの値を指定する、エラーに割り当てられた数値。 省略した場合は 0 です。description
省略可能です。 エラーを説明する短い文字列。description プロパティおよび message プロパティの初期値になります。 省略した場合は空の文字列です。
解説
Error オブジェクトは、上に示したコンストラクターを使用して明示的に作成できます。 Error オブジェクトにプロパティを追加して、その機能を拡張できます。 ランタイム エラーが発生した場合はいつでも、Error オブジェクトを作成してエラーを表すことができます。
一般に、Error オブジェクトは throw ステートメントでスローされ、try...catch ステートメントでキャッチされます。 throw ステートメントを使用して任意のデータ型をエラーとして渡すことができますが、throw ステートメントは暗黙的に Error オブジェクトを作成しません。 Error オブジェクトをスローすることにより、catch ブロックが JScript のランタイム エラーおよびユーザー定義エラーを同様に処理できます。
Error オブジェクトには 4 つの組み込みプロパティがあります。エラーの説明 (description および message プロパティ)、エラー番号 (number プロパティ)、およびエラーの名前 (name プロパティ) の 4 つです。 description プロパティおよび message プロパティは、同じメッセージを参照します。description プロパティは下位互換性を提供し、message プロパティは ECMA 規格に準拠しています。
エラー番号は 32 ビット値です。 上位の 16 ビット ワードは機能識別符号です。下位のワードは実際のエラー コードです。 実際のエラー コードを読み取るには、& (ビットごとの And) 演算子を使用して、number プロパティと 16 進数の 0xFFFF を組み合わせます。
ヒント
ASP.NET ページで JScript の Error オブジェクトを使用した場合、予期しない結果が生じることがあります。 これは、JScript の Error オブジェクトと ASP.NET ページの Error イベントの間にあるあいまいさが原因です。 ASP.NET ページのエラー処理には、Error オブジェクトではなく System.Exception クラスを使用してください。
注意
JScript だけが Error オブジェクトを提供します。 このオブジェクトは .NET Framework 型から派生していないため、他の共通言語仕様 (CLS: Common Language Specification) 言語では使用できません。 したがって、CLS 準拠のメソッドのパラメーターと戻り値の型を型の注釈で指定する場合は、Error オブジェクトではなく System.Exception 型を使用してください。 ただし、パラメーターや戻り値の型以外の識別子では、Error オブジェクトを使用して型の注釈を指定できます。 詳細については、「CLS 準拠コードの記述」を参照してください。
使用例
次のコードは、Error オブジェクトの使用例です。
try {
// Throw an error.
throw new Error(42,"No question");
} catch(e) {
print(e)
// Extract the error code from the error number.
print(e.number & 0xFFFF)
print(e.description)
}
このコードの出力は次のようになります。
Error: No question
42
No question