SyntaxError

Об'єкт класу SyntaxError позначає помилку, що виникає внаслідок спроби виконання коду з порушеннями синтаксису.

Опис

Виняток SyntaxError викидається тоді, коли рушій JavaScript під час спроби виконати код виявляє символи чи їх послідовність, що суперечить чинному синтаксу мови.

Синтаксис

new SyntaxError([message[, fileName[, lineNumber]]])

Параметри

message Optional
Зрозумілий людині опис помилки.
fileName Optional
Ім'я файлу, код з якого спричинив помилку.
lineNumber Optional
Номер рядка в коді, що спричинив помилку.

Властивості

SyntaxError.prototype
Вможливлює додавання властивостей до об'єктів класу SyntaxError.

Методи

Сам SyntaxError власних методів не має, але деякі він успадковує через ланцюжок прототипів.

Примірники SyntaxError

Властивості

SyntaxError.prototype.constructor
Функція, що створює прототип об'єкта.
SyntaxError.prototype.message
Повідомлення помилки. Попри те, що в ECMA-262 зазначено, що SyntaxError мусить мати свою властивість message, у SpiderMonkey він насправді успадковує Error.prototype.message.
SyntaxError.prototype.name
Ім'я помилки. Успадковано від Error.
SyntaxError.prototype.fileName
Шлях до файла, де сталася ця помилка. Успадковано від Error.
SyntaxError.prototype.lineNumber
Номер рядка у файлі, де сталася ця помилка. Успадковано від Error.
SyntaxError.prototype.columnNumber
Номер символа у рядку, де сталася ця помилка. Успадковано від Error.
SyntaxError.prototype.stack
Стек викликів. Успадковано від Error.

Методи

Хоча прототип SyntaxError не містить власних методів, примірники SyntaxError успадковують деякі методи від ланцюжка прототипів.

Приклади

Перехоплення SyntaxError

try {
  eval('казна-що');
} 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('Отакої!', 'someFile.js', 10);
} catch (e) {
  console.error(e instanceof SyntaxError);  // true
  console.error(e.message);                 // Отакої!
  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
}

Специфікації

Підтримка веб-переглядачами

BCD tables only load in the browser

Див. також