Книга: JavaScript. Подробное руководство, 6-е издание

Error

Error

Error

обобщенное исключение (Object—>Error)

Конструктор

new Error()
new Error (сообщение)

Аргументы

сообщение Необязательное сообщение об ошибке с дополнительной информацией об исключении.

Возвращаемое значение

Вновь созданный объект Error. Если задан аргумент сообщение, объект Error будет использовать его в качестве значения своего свойства message; в противном случае он возьмет в качестве значения этого свойства строку по умолчанию, определенную реализацией. Когда конструктор Error() вызывается как функция (без оператора new), он ведет себя так же, как при вызове с оператором new.

Свойства

message

Сообщение об ошибке с дополнительной информацией об исключении. В этом свойстве хранится строка, переданная конструктору, или строка по умолчанию, определяемая реализацией.

name

Строка, задающая тип исключения. Для экземпляров класса Error и всех его подклассов это свойство задает имя конструктора, с помощью которого был создан экземпляр.

Методы

toString() Возвращает строку, определенную в реализации, которая представляет этот объект Error.

Описание

Экземпляры класса Error представляют ошибки или исключения и обычно используются с инструкциями throw и try/catch. Свойство name определяет тип исключения, а посредством свойства message можно создать и отправить пользователю сообщение с подробной информацией об исключении.

Интерпретатор JavaScript никогда не создает объект Error непосредственно. Вместо этого он создает экземпляры одного из подклассов Error, таких как SyntaxError или RangeError. В ваших программах для предупреждения об исключении может быть удобнее создавать объекты Error или просто выдавать сообщение об ошибке или ее код в виде элементарного строкового или числового значения.

Обратите внимание: спецификация ECMAScript определяет для класса Error метод toString() (он наследуется всеми подклассами Error), но не требует, чтобы этот метод возвращал строку, содержащую значение свойства message. Поэтому не следует ожидать, что метод toString() преобразует объект Error в строку, понятную человеку. Чтобы отобразить для пользователя сообщение об ошибке, необходимо явно использовать свойства name и message объекта Error.

Пример

Предупредить об исключении можно так:

function factorial(x) {
if (х < 0)
  throw new Error("factorial: x должно быть >= 0");
  if (x <= 1)
    return 1;
  else
    return x * factorial(x1);
}

Перехватывая исключение, можно сообщить о нем пользователю следующим способом (с помощью клиентского метода Window.alert()):

try {
  &*(&/* здесь возникает ошибка */ }
catch(e) {
  if (е instanceof Error) {
    // Это экземпляр класса Error или его подкласса?
    alert(e.name + ": + е.message);
  }
}

См. также

EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError

Error.message

сообщение об ошибке

Синтаксис

error.message

Описание

Свойство message объекта Error (или экземпляра любого подкласса Error) предназначено для хранения понятной человеку строки, содержащей подробные сведения о возникшей ошибке или исключении. Если конструктору Еrror() передан аргумент message, он становится значением свойства message. Если аргумент message передан не был, объект Error наследует для этого свойства значение по умолчанию, определенное реализацией (которое может быть пустой строкой).

Error.name

тип ошибки

Синтаксис

error.name

Описание

Свойство name объекта Error (или экземпляра любого подкласса Error) задает тип произошедшей ошибки или исключения. Все объекты Error наследуют это свойство от своего конструктора. Значение свойства совпадает с именем конструктора. Другими словами, у объектов SyntaxError свойство name равно «SyntaxError», а у объектов EvalЕrror - «EvalError».

Error.toString()

преобразует объект Error в строку (переопределяет Object.toString())

Синтаксис

error.toString()

Возвращаемое значение

Строка, определенная реализацией. Стандарт ECMAScript ничего не говорит о значении, возвращаемом этим методом, за исключением того, что оно должно быть строкой. Стоит отметить, что он не требует, чтобы возвращаемая строка содержала имя ошибки или сообщение об ошибке.

escape() (устарело)

кодирует строку

Синтаксис

escape(s)

Аргументы

s Строка, которая должна быть закодирована (с применением управляющих последовательностей).

Возвращаемое значение

Закодированная копия s, в которой определенные символы заменены шестнадцатеричными управляющими последовательностями.

Описание

escape() - глобальная функция, которая возвращает новую строку, содержащую закодированную версию аргумента s. Сама строка s не изменяется. Функция escape() возвращает строку, в которой все символы, имеющиеся в строке s, отличные от букв, цифр и символов пунктуации (@, *, _, +, -,. и /) набора ASCII, заменены управляющими последовательностями в формате %хх или %ихххх (где х обозначает шестнадцатеричную цифру). Символы Юникода от u0000 до u00f f заменяются управляющей последовательностью %хх, все остальные символы Юникода - последовательностью %uхххх.

Строка, закодированная с помощью escape(), декодируется функцией unescape().

Хотя функция escape() стандартизована в первой версии ECMAScript, она была признана устаревшей и удалена из стандарта в ECMAScript v3. Реализации ECMAScript обычно поддерживают эту функцию, хотя это необязательно. Вместо escape() следует использовать функции encodeURI() и encodeURIComponent().

Пример

escape("Hello World!"); // Вернет "Hello%20World%21"

См. также

encodeURI(), encodeURIComponent()

Оглавление книги


Генерация: 0.777. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз