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
}

¶省く


テスト