SyntaxError

Сводка

Объект 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 6 (ECMA-262)
Определение 'SyntaxError' в этой спецификации.
Кандидат в рекомендации  

Совместимость с браузерами

Возможность Chrome Firefox (Gecko) Internet Explorer Opera Safari
Базовая поддержка (Да) (Да) (Да) (Да) (Да)
Возможность Android Chrome для Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Базовая поддержка (Да) (Да) (Да) (Да) (Да) (Да)

Смотрите также

Метки документа и участники

 Внесли вклад в эту страницу: Mingun
 Обновлялась последний раз: Mingun,