Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов




НазваниеЛекция 2-07 12. Создание пользовательских объектов и экземпляров объектов
страница10/10
Дата публикации15.03.2013
Размер1.04 Mb.
ТипЛекция
uchebilka.ru > Астрономия > Лекция
1   2   3   4   5   6   7   8   9   10
^

4.4.15.2. Объект Error


В объектно-ориентированных языках программирования, в том числе и JavaScript, при возникновении ошибки создается экземпляр объекта Error, свойства которого содержат сведения об ошибке. Этот объект передается на обработку программе, в которой возникла ошибка.

Если программа на языке JavaScript не обрабатывает ошибку, то объект передается обработчику по умолчанию среды выполнения сценариев Web-браузера. Обработчик выводит сообщение об ошибке и прекращает выполнение программы.

Объект Error имеет следующие свойства (набор свойств в разных Web-браузерах разный):

  • description – описание ошибки (в Internet Explorer);

  • number – номер (код) ошибки (в Internet Explorer);

  • name – имя (идентификатор) ошибки (в Internet Explorer, Firefox и Opera);

  • message – сообщение, связанное с ошибкой (в Internet Explorer, Firefox и Opera);

  • fileName – имя файла с Web-страницей, в которой произошла ошибка (в Firefox);

  • lineNumber – номер строки в файле, в которой произошла ошибка (в Firefox);

  • stack – трассировка ошибки (в Firefox).

Кроме того, для объекта ^ Error определены свойства constructor и prototype, а также функция toString() объекта Object (эта функция не определена в Internet Explorer).

Как видно из списка свойств, общими для всех распространенных Web-браузеров являются свойства name и message, и поэтому только их рекомендуется использовать при обработке ошибок.

Следует отметить, что при делении на ноль или невозможности преобразования строки в число, объект Error не создается. В этом случае переменной просто присваивается значение infinity или NaN.
^

4.4.15.3. Механизм обработки ошибок в JavaScript


В сценарии на языке JavaScript могут возникать ошибки одного из трех видов:

  • ошибки из-за неправильного синтаксиса сценария (например, из-за нарушения баланса скобок – в предложении должна быть и открывающая и закрывающая скобка);

  • ошибки времени выполнения (например, использование в правой части оператора присваивания переменной, которая не объявления и которой не присвоено никакого значения);

  • пользовательские ошибки, т.е. ошибки, специфичные для данного сценария (например, неверный индекс элемента массива).

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

Механизм обработки таких ошибок в JavaScript сводится к следующим действиям:

  • Оператор или операторы JavaScript, в которых может произойти ошибка, помещаются в блок try;

  • Сразу же после блока try помещается блок catch с параметром e, в котором производится обработка ошибок;

  • Если при выполнении операторов в блоке try ошибка не возникает, все операторы блока выполняются, а затем будут выполняться операторы, следующие за блоком catch;

  • Если при выполнении какого-либо оператора в блоке try произошла ошибка, все операторы блока try, следующие за ошибочным оператором, пропускается и управление передается в блок catch, обрабатывающий ошибки;

  • После блока catch может быть задан блок finally, операторы которого выполняются, независимо от того, произошла ошибка при выполнении блока try или нет.


Пример 4.4.101. Обработка типовой ошибки с помощью объекта Error:

В примере при выполнении предложения x = y + 2 использована переменная y, которая ранее не была объявлена и значение которой не определено (если переменная была объявлена, ей присваивается значение undefined, но объект Error не создается).

// Переключатель наличия ошибки установлен в false

isError = false;

// Блок проверки наличия ошибки

try

{

// Выполнение сложения при незаданном значении y

x = y + 2;

}

// Блок обработки ошибок

catch(e)

{

// Переключатель наличия ошибки установлен в true

isError = true;

// Вывод имени ошибки и сообщения об ошибке

alert("name='" + e.name + "'" +

"\nmessage='" + e.message + "'" +

"\ndescription='" + e.description + "'" +

"\nnumber='" + e.number + "'" +

"\nfileName='" + e.fileName + "'" +

"\nlineNumber='" + e.lineNumber + "'" +

"\nstack='" + e.stack + "'");

}

// Блок finally

finally

{

// Если нет ошибки

if(!isError)

// Вывод значения x

alert("x=" + x);

}

В этом фрагменте сценария при выполнении предложения x = y + 2 использована переменная y, которая ранее не была объявлена и значение которой не определено (если переменная была объявлена, ей присваивается значение undefined, но объект Error не создается).

При выполнении этого фрагмента на экран в разных Web-браузерах будут выведены следующие сообщения:



(в Internet Explorer)



(в Firefox)



(в Opera)



(в Safari)
^

4.4.15.4. Создание и использование объекта Error


В приведенном выше примере создание (или «бросание») объекта Error инициируется средой выполнения сценария JavaScript в Web-браузере. В случае пользовательской ошибки ее обнаружение и обработка также выполняется в блоке trycatchfinally, однако в этом случае пользователь должен:

  • создать клон объекта Error и задать его свойства;

  • в блоке try вручную «бросить» созданный объект блоку catch.

Объект Error создается с помощью одного из следующих предложений:

var имя-объекта-Error = new Error();

var имя-объекта-Error = new Error(сообщение);

В первом случае объект создается со значениями свойств, равными пустой строке, а во втором случае значение параметра сообщение становится значением свойства message.

«Бросание» объекта Error в блоке try выполняется с помощью предложения

throw имя-объекта-Error

Это предложение передает управление в блок catch для обработки «брошенной» ошибки.
Пример 4.4.102. Создание и использование собственного объекта Error:

// Создание нового экземпляра объекта Error

var outOfRangeError = new Error("Индекс вне диапазона");

// Присвоение имени ошибке

outOfRangeError.name = "OutOfRangeError";

// Создание массива a

a = new Array(1, 2, 3, 4, 5);



// Блок проверки наличия ошибки

try

{

// Ввод индекса массива

aIndex =

prompt("Введите индекс элемента в массиве a:","");

// Если индекс неверный

if(aIndex < 0 || aIndex > a.length - 1)

// "бросание" объекта Error блоку catch

throw outOfRangeError;

// Определение значения элемента массива

x = a[aIndex];

// Вывод элемента массива

alert("x=" + x);

}

// Блок обработки ошибок

catch(e)

{

// Вывод сообщения об ошибке

alert("Ошибка: " + e.name + ". " +

e.message + ": " + aIndex);

}

Если будет введено правильное значение индекса массива, например, ^ 4, будет выполнено предложение

x = a[aIndex];

а затем будет выведено сообщение:





Если же значение индекса массива будет неверным, например, 5, то будет «брошен» объект Error и управление будет передано блоку catch, в котором будет выведено следующее сообщение:







Файл: 15291.doc Создан: 26.02.2009 Модифицирован: 09.05.2009 Автор: Шонин В.А.
1   2   3   4   5   6   7   8   9   10

Похожие:

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconЛекция №4 создание символов и работа с эффектами в adobe flash
Создание документа (размеры, цвет фона, частота кадров). Выравнивание объектов в документе

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconРешение городского Совета о включении в перечень объектов, подлежащих приватизации
Дополнения к Перечню объектов коммунальной собственности, включенных в перечни объектов

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconРешение №12/1 от 25. 01. 07 (пятый созыв двенадцатая сессия) "Отчет...
Ия 17 объектов коммунальной собственности. С учетом 6-и объектов, переходящих из Перечня объектов, подлежащих приватизации в 2005...

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconЛабораторная работа №3 Тема: Изучение основ параметрической анимации в 3d studio max
Цель работы: Изучить основные виды и способы анимации параметров объектов в 3d studio max: анимация по ключевым кадрам, анимация...

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconОценка эффективности инвестиций в недвижимости
В отличие от финансовых инвестиций, недвижимость имеет явно выраженную материальную форму, более высокий уровень защиты от инфляции,...

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconЛекция 5 Тема: Элементы окна программы компас-3D, управление изображением...
Анализируя свойства этих простых трехмерных геометрических объектов можно сделать вывод о том, что форма каждого из них имеет свои...

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconИнспектор ип «gsg украйна»
Инспектирование грузов и объектов (Агро сектор, Металлургия). Управление залоговым хранением. Техническое инспектирование объектов...

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconПрограмма ArCon проста и удобна в освоении и использовании. Вы научитесь...
Многократное копирование элементов и объектов. Полукруглые, круглые стены с возможностью редактирования. Загрузка объектов в режиме...

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconДиаграммы объектов
Диаграммы объектов применяют при моделировании статических видов системы с точки зрения проектирования и процессов. При этом моделируется...

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconОбщие положения
Целью Программы является создание банка данных для обеспечения органов исполнительной власти полноразмерными копиями документов и...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
uchebilka.ru
Главная страница


<