概要
errorオブジェクトを生成します。
構文
new Error([message[, fileName[,
lineNumber
]]])
引数
-
message
- 人間に読めるエラーの説明
-
fileName
- 例外を発生させるコードを含むファイルの名前
-
lineNumber
- 例外を発生させるコードの行番号
説明
ランタイムエラーが発生すると、新しいErrorオブジェクトが生成され、投げられることになります。
このページは、Errorオブジェクト自体の使い方と、それをコンストラクタ関数として使うことについて記述します。Errorインスタンスから継承されているプロパティとメソッドのリストについては、Error.prototype を参照してください。
Error types
JavaScriptには、一般的なErrorコンストラクタの他に、6つのcore error constructorsがあります。 クライアント側の例外については、Exception Handling Statementsを参照してください。
- EvalError
- グローバル関数eval()に関して発生するエラーを表すインスタンスを生成します。
- RangeError
- 数値をあらわす変数又は引数が、その有効範囲外である場合に発生するエラーを表すインスタンスを生成します。
- ReferenceError
- 不正な参照を読み出した場合に発生するエラーを表すインスタンスを生成します。
- SyntaxError
- eval() 内のコードを評価中に発生する構文エラーを表すインスタンスを生成します。
- TypeError
- 変数又は引数の型が有効でない場合に発生するエラーを表すインスタンスを生成します。
- URIError
- encodeURI() 又は decodeURI() が不正な引数を渡された場合に発生するエラーを表すインスタンスを生成します。
プロパティ
Error
インスタンスから継承されているPropertiesについては、Error インスタンスのPropertiesを参照してください。
- prototype
-
Error
インスタンスにプロパティを追加することが出来ます。
メソッド
Error
インスタンスから継承されているMethodsについては、Error インスタンスのMethodsを参照してください。
グローバルな Error
オブジェクトは、自分自身のメソッドを持っていませんが、プロトタイプチェーンを通していくつかのメソッドを継承しています。
Error
インスタンス
Properties
標準プロパティ
- constructor
- インスタンスのプロトタイプが生成された関数を示します。
- message
- エラーメッセージ。
- name
- エラー名
ベンダー独自の拡張
非標準
Microsoft
- description
- エラー説明。 message と同類。
- number
- エラー数。
Mozilla
- fileName
- このエラーを起こしたファイルへのパス。
- lineNumber
- このエラーを起こしたファイル内の行番号。
- stack
- スタックトレース。
Methods
- toSource
- 指定された
Error
オブジェクトのソースを含む文字列を返します。 この値を、新しいオブジェクトを生成するのに利用できます。 Object.toSource メソッドをオーバーライドします。 - toString
- 指定されたオブジェクトを表す文字列を返します。Object.toString メソッドをオーバーライドします。
例
例: 一般的なエラーの投げ方
通常、意図的に起こすエラーオブジェクトは throw キーワードを使って生成します。 try...catch コンストラクトを使ってエラーを処理することが出来ます。
try { throw new Error("Whoops!"); } catch (e) { alert(e.name + ": " + e.message); }
例: 特定のエラーを処理する
this should probably be removed特定のエラー型だけを処理するために選択するには、エラー型とエラーのコンストラクタプロパティを調べるか、もし最近のJavaScriptエンジンに向けて書いているならinstanceofキーワードを使います。
try { foo.bar(); } catch (e) { if (e instanceof EvalError) { alert(e.name + ": " + e.message); } else if (e instanceof RangeError) { alert(e.name + ": " + e.message); } // ... etc }