JavaScript/EvalError
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
はすべての主要なブラウザでサポートされています。