JavaScript
::Error オブジェクト
編集:2022.09.15 by T.A.
→
実行時エラーが発生した時に発生します。
Error オブジェクトは、ユーザー定義の例外の基底オブジェクトとして使用することもできます。標準の組み込みエラー型については下記を参照してください。
解説
実行時エラーが発生すると、新しい Error オブジェクトが生成されスローされます。
エラーの型
JavaScript には、一般的な Error コンストラクターの他に、中核となる 7 つのエラー・コンストラクターがあります。クライアント側の例外については、例外処理文を参照してください。
- EvalError
- グローバル関数 eval() に関して発生するエラーを表すインスタンスを生成します。
- InternalError
- "too much recursion"(深すぎる再帰)など、JavaScript エンジンで内部エラーが発生した時に発生するエラーを表すインスタンスを生成します。
- RangeError
- 数値変数または引数が、その有効範囲外である場合に発生するエラーを表すインスタンスを生成します。
- ReferenceError
- 不正な参照から参照先の値を取得した時に発生するエラーを表すインスタンスを生成します。
- SyntaxError
- 構文エラーを表すインスタンスを生成します。
- TypeError
- 変数または引数の型が有効でない場合に発生するエラーを表すインスタンスを生成します。
- URIError
- encodeURI() または decodeURI() に不正な引数が渡された時に発生するエラーを表すインスタンスを生成します。
コンストラクター
- new Error()
- 新しい Error オブジェクトを生成します。
プロパティ
- Error.message
- エラー メッセージ。
- Error.name
- エラーの名称。
- Error.description 廃止?
- 標準外の Microsoft のプロパティで、エラーの説明です。message と似ています。
- Error.number 廃止?
- 標準外の Microsoft のプロパティで、エラー番号です。
- Error.fileName 非標準
- 標準外の Mozilla のプロパティで、このエラーが発生したファイルへのパスです。
- Error.lineNumber 非標準
- 標準外の Mozilla のプロパティで、このエラーが発生したファイル内の行番号です。
- Error.columnNumber 非標準
- 標準外の Mozilla のプロパティで、このエラーが発生した行内の桁番号です。
- Error.stack 非標準
- 標準外の Mozilla プロパティで、スタック トレースです。
メソッド
- Error.toString()
- 指定したオブジェクトを表す文字列を返します。Object.prototype.toString() メソッドを上書きします。
例
一般的なエラーを発生させる
通常、throw キーワードを使い意図的にエラーを発生させて Error オブジェクトを生成します。try...catch 構文を使用してエラーを処理してください:
//コンソールにて
try {
throw new Error('Whoops!')
} catch (e) {
console.error(e.name + ': ' + e.message)
}
特定のエラーを処理する
エラーの constructor プロパティでエラー型をテストすることにより、特定のエラー型だけを選んで処理できます。または、最近の JavaScript エンジン向けに書いているのであれば、instanceof キーワードが使えます:
//コンソールにて
try {
foo.bar()
} catch (e) {
if (e instanceof EvalError) {
console.error(e.name + ': ' + e.message)
} else if (e instanceof RangeError) {
console.error(e.name + ': ' + e.message)
}
// ... etc
}
¶省く
テスト