Сводка
Объект SyntaxError
представляет ошибку, возникающую при попытке интерпретировать синтаксически неправильный код.
Синтаксис
new SyntaxError([message[, fileName[, lineNumber]]])
Параметры
message
- Необязательный параметр. Человеко-читаемое описание ошибки.
fileName
- Необязательный параметр. Имя файла, содержащего код, вызвавший исключение.
lineNumber
- Необязательный параметр. Номер строки кода, вызвавшей исключение.
Описание
Исключение SyntaxError
выбрасывается, когда движок JavaScript при разборе кода обнаруживает токены или токен, которые, согласно синтаксису, не должны здесь находиться.
Свойства
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('hoo bar'); } catch (e) { console.log(e instanceof SyntaxError); // true console.log(e.message); // "missing ; before statement" - перед инструкцией отсутствует символ ; console.log(e.name); // "SyntaxError" console.log(e.fileName); // "Scratchpad/1" console.log(e.lineNumber); // 1 console.log(e.columnNumber); // 4 console.log(e.stack); // "@Scratchpad/1:2:3\n" }
Пример: возбуждение исключения SyntaxError
try { throw new SyntaxError('Привет', 'someFile.js', 10); } catch (e) { console.log(e instanceof SyntaxError); // true console.log(e.message); // "Привет" console.log(e.name); // "SyntaxError" console.log(e.fileName); // "someFile.js" console.log(e.lineNumber); // 10 console.log(e.columnNumber); // 0 console.log(e.stack); // "@Scratchpad/2:11:9\n" }
Спецификации
Спецификация | Статус | Комментарии |
---|---|---|
ECMAScript 3-е издание. | Стандарт | Изначальное определение. |
ECMAScript 5.1 (ECMA-262) Определение 'SyntaxError' в этой спецификации. |
Стандарт | |
ECMAScript 2015 (6th Edition, ECMA-262) Определение 'SyntaxError' в этой спецификации. |
Стандарт |
Совместимость с браузерами
Возможность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Базовая поддержка | (Да) | (Да) | (Да) | (Да) | (Да) |
Возможность | Android | Chrome для Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Базовая поддержка | (Да) | (Да) | (Да) | (Да) | (Да) | (Да) |