Error オブジェクト
更新 : 2007 年 11 月
エラーに関する情報を格納します。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 クラスを使用してください。 |
メモ : |
---|
Error オブジェクトがサポートされるのは JScript だけです。このオブジェクトは .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