Книга: 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()
- SCTP ERROR chunk
- Adding Some Error Checking
- Errors During Compile
- Runtime Errors, Boot Loader Problems, and Kernel Oops
- 6.1.5. Trial-and-Error Method
- 9.3 Error Frame
- 9.6 Types of Errors
- 9.9.6 Error Recognition Mode
- Repairing disk errors and inconsistencies automatically
- Enabling print job error notification
- 10.3.1 Internal Errors and Special Conditions Management
- #warning and #error