コンテンツにスキップ

JavaScript/EvalError

出典: フリー教科書『ウィキブックス(Wikibooks)』

EvalError は、元々 ECMAScript の eval() 関数に関連するエラーを示すために使用されていたエラーオブジェクトです。しかし、現在では eval() 関数に関するエラーは、主に SyntaxError や他のエラーによって処理されるようになっており、EvalError はほとんど発生しません。そのため、EvalError は主に互換性のために存在しています。

EvalError は、Error オブジェクトを継承しており、エラーメッセージやスタックトレースを提供することができますが、現代の JavaScript ではほとんど使用されることはありません。

構造

[編集]

EvalError は、Error オブジェクトを継承しており、以下のプロパティを持っています:

  • message: エラーメッセージ(文字列)
  • name: エラー名(デフォルトは 'EvalError'
  • stack: エラーが発生した場所を示すスタックトレース(オプション)

コンストラクタ

[編集]
new EvalError([message])
  • 引数
    • message: (省略可能)エラーメッセージを示す文字列。
  • 戻り値

EvalError オブジェクトを返します。

使用例

[編集]

以下は、EvalError を捕える例です。しかし、現代の JavaScript では eval()EvalError をスローすることはほとんどないため、主に互換性のための例示です。

try {
  eval('throw new EvalError("評価エラーが発生しました")');
} catch (e) {
  if (e instanceof EvalError) {
    console.log("EvalError が発生しました:", e.message);  // EvalError が発生しました: 評価エラーが発生しました
  } else {
    console.log("その他のエラー:", e);
  }
}

eval 関数と EvalError

[編集]

EvalError は、かつて eval() 関数の使用中に発生するエラーを示すために使用されていましたが、現在では eval() に関するエラーは SyntaxError などで処理されます。そのため、EvalError はほとんど使用されることはなく、ECMAScript の仕様においても互換性のために残されているエラーオブジェクトです。

eval() は、文字列をコードとして評価し実行しますが、その実行中に問題が発生した場合、例えば無効な構文が含まれている場合、SyntaxError が発生します。EvalError は、eval() が原因で発生するエラーとしての役割はほとんどなくなり、代わりに他のエラーが使われることが一般的です。

現代の使用

[編集]

EvalError は、現代の JavaScript ではほとんど使用されていません。eval() 関数の使用自体が推奨されておらず、その代わりに JSON.parse()Function コンストラクタなど、安全で予測可能な方法が使用されます。EvalError は、主に互換性のために JavaScript に残されているエラーオブジェクトです。

仕様

[編集]
  • ECMAScript 5.1(ES5.1)
  • ECMAScript 6(ES6)

関連項目

[編集]

ブラウザサポート

[編集]

EvalError はすべての主要なブラウザでサポートされています。