В этой главе приведены описания встроенных объектов Error, Math и RegExp.
Исключения: объект Error
Объекты Error создаются при возникновении ошибок в процессе выполнения сценария и содержат информацию об ошибке, которая используется операторами обработки исключений. К сожалению, реализации этого класса объектов не вполне соответствуют стандарту, поэтому мы сначала описываем объект Error согласно ECMAScript, а затем его реализацию в JScript (JavaScript, реализованный в обозревателях Netscape, вообще не поддерживает объекты Error).
Объект Error в ECMAScript
Все исключения подразделяются на системные и пользовательские. Системные исключения генерируются исполняющей системой в процессе выполнения сценария, пользовательские - самим сценарием с помощью оператора throw. Стандарт ECMAScript предусматривает следующие виды системных исключений
Исключения ECMAScriptНазвание | Описание |
---|
EvalError | Недопустимое обращение к функции eval. | RangeError | Числовое значение вне допустимого диапазона. | ReferenceError | Недопустимое значение ссылки. | SyntaxError | Синтаксическая ошибка. | TypeError | Несовместимые типы операндов. | URIError | Недопустимое обращение к функции работы с URI. | Объекты Error соответственно также могут быть созданы исполняющей системой или сценарием. Конструктор пользовательского объекта Error имеет вид new Error(message) , где message - текст сообщения об ошибке.
Свойства объекта ErrorСвойство | Описание | Член прототипа |
---|
constructor | Конструктор, который создал объект. | Да | message | Текст сообщения об ошибке. | Да | name | Название исключения. | Да | prototype | Ссылка на прототип класса объектов. | Да |
Методы объекта ErrorСвойство | Описание | Член прототипа |
---|
toString | Возвращает строку "[object Error]". | Да |
Свойство message
Значением свойства message является сообщение об ошибке данного объекта. Это свойство является свойством объекта по умолчанию.
Свойство name
Значением свойства name является название данного объекта. В пользовательских объектах оно содержит строку "Error", а в системных объектах - строку, содержащую тип исключения согласно этой таблицы.
Объект Error в JScript
В JScript, реализованном в обозревателях Internet Explorer 5.x, объект Error имеет нестандартный конструктор new Error(number [, description]?). Здесь number - номер ошибки, description - текст сообщения о ней. При этом number является свойством по умолчанию и содержит в в старшем слове код источника ошибки (facility code), а в младшем слове - ее номер. Перечень всех системных ошибок JScript приведен в здесь
Для совместимости с ECMAScript объект Error в Internet Explorer 5.5 получил свойства message и name. При этом свойство message является синонимом свойства description, а name соответствует приведенному выше описанию.
Пример генерации исключения в JScript и вывода информации о нем:
function showErrorInfo(e) { document.write(e, ": "); document.write("Источник ошибки: ", (e.number >> 16) & 0x1FFF, " "); document.write("Номер ошибки: ", e.number & 0xFFFF, " "); document.write("Описание ошибки: ", e.description); }
var x; try { x = y; // Ошибка: переменная y не определена } catch (e) { // Создает локальный объект e класса Error showErrorInfo(e); }
Этот сценарий выведет на экран:
[object Error]: Источник ошибки: 10 Номер ошибки: 5009 Описание ошибки: "y" - определение отсутствует
1 2 3 4 5
8 8 8
| |