Об'єкт класу 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