JavaScript

SyntaxError オブジェクト

 編集:2022.08.09 by T.A.

SyntaxError オブジェクトは、構文的に不正なコードを解釈しようとした場合のエラーを表します。これは、JavaScript エンジンが、コードを解析中に言語の構文に従わないトークンまたはトークンの順序に遭遇した場合に発生します。

コンストラクター
SyntaxError()
新しい SyntaxError オブジェクトを生成します。
インスタンス プロパティ
SyntaxError.message
エラーメッセージです。ECMA-262 において SyntaxError は自身の message プロパティを提供するべきとされていますが、SpiderMonkey では Error.prototype.message を継承しています。
SyntaxError.name
エラー名です。Error から継承しています。
SyntaxError.fileName
このエラーが発生したファイルのパスです。Error から継承しています。
SyntaxError.lineNumber
このエラーが発生したファイル内の行番号です。Error から継承しています。
SyntaxError.columnNumber
このエラーが発生した行内の桁数です。Error から継承しています。
SyntaxError.stack
スタックト レースです。Error から継承しています。
SyntaxError のキャッチ
//コンソールにて
try {
  eval('hoo bar');
} catch (e) {
  console.error(e instanceof SyntaxError);
  console.error(e.message);
  console.error(e.name);
  console.error(e.fileName);
  console.error(e.lineNumber);
  console.error(e.columnNumber);
  console.error(e.stack);
}
SyntaxError の生成
//コンソールにて
try {
  throw new SyntaxError('Hello', 'someFile.js', 10);
} catch (e) {
  console.error(e instanceof SyntaxError); // true
  console.error(e.message);                // Hello
  console.error(e.name);                   // SyntaxError
  console.error(e.fileName);               // someFile.js
  console.error(e.lineNumber);             // 10
  console.error(e.columnNumber);           // 0
  console.error(e.stack);                  // @debugger eval code:3:9
}

テスト