Руководство по actionscript. часть 2, стр. 075

Изменим метод setName ( ) таким образом, чтобы он генерировал исключение (оповещал об ошибке) в тех случаях, когда передаваемое значение параметра newName содержит недопустимое количество символов. Позднее мы добавим код, восстанавливающий работоспособность программы после ошибки, для обработки нового исключения, генерируемого в методе setName ( ).

Для генерации исключения в нашем коде мы используем оператор throw, который имеет следующий вид:

throw выражение

В предыдущем коде выражение — это значение данных, описывающее некоторую необычную или проблематичную ситуацию. Использование оператора throw для оповещения об ошибке иногда называется «генерацией исключения». Язык ActionScript позволяет использовать любое значение в качестве выражения выражение в операторе throw. Например, значением выражения выражение может быть строковый литерал «Something went wrong!11 (Что-то не получилось!) или числовой код ошибки. Однако корпорация Adobe рекомендует использовать в качестве значения выражения выражение экземпляр предопределенного класса Error (или одного из его подклассов), считая этот подход хорошей практикой. Класс Error является стандартным классом, представляющим исключительные ситуации в программе. Его переменная экземпляра message используется для описания ошибки.

Оператор throw останавливает выполнение кода и передает значение выражения выражение в специальный блок кода, называемый блоком catch, который будет реагировать на возникшую проблему, или обрабатывать ее. Прежде чем рассмотреть, как работает блок catch, изменим метод setName ( ) таким образом, чтобы он генерировал исключение с помощью оператора throw, когда получено недопустимое значение параметра petName:

public function setName (newName:String):void { // Если длина заданного нового имени больше maxNameLength символов… if (newName. length > Virtual Pet. maxNameLength || newName = «») { // …генерируем ошибку

throw new Error(«Invalid pet name specified.»);

}

// Присвоить новое допустимое имя переменной petName petName = newName;

В нашей новой версии метода setName ( ), если значение параметра newName является недопустимым, мы используем оператор throw для прекращения выполнения метода вместо того, чтобы просто обрезать указанное имя, как мы делали раньше. Кроме того, мы указываем описание проблемы — «Invalid pet name specified» (Указано недопустимое имя животного) — в качестве аргумента конструктора Error. Это описание определяет ситуацию, из-за которой возникла ошибка. Конструктор Error присваивает это описание переменной message созданного объекта Error.

Если метод setName ( ) не обнаружит никаких проблем со значением параметра newName, то он завершится нормально, и код, вызвавший его, может быть уверен, что работа, возложенная на этот метод, выполнена успешно. В противном случае блок catch должен обработать возникшую проблему. Блок catch является частью большой инструкции, называемой инструкцией try/catch/finally. Инструкция try/catch/ fin ally предусматривает план восстановления для кода, который может сгенерировать исключение. Вот общая структура типовой инструкции try/ catch/finally:

try {

// Код в этом блоке может генерировать исключения } catch (е:тип) {

II Код в этом блоке обрабатывает возникшую проблему } finally {

// Код в этом блоке выполняется всегда, независимо от того, // сгенерировал блок try исключение или нет

}

В приведенном коде ключевое слово try сообщает среде Flash, что мы собираемся выполнить код, который может сгенерировать исключение. Блок catch обрабатывает исключения, генерируемые блоком try. Код в блоке catch выполняется в том, и только в том случае, когда код в блоке try сгенерировал исключение. Код в блоке final 1 у выполняется всегда после завершения выполнения блока try или catch. Блок final 1 у инструкции try/ catch/finally обычно содержит очищающий код, который должен выполняться независимо от того, было сгенерировано исключение в соответствующем блоке try или нет.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Оставить комментарий

Вы должны авторизоваться для отправки комментария.

Полезные ссылки
Случайные записи
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.89
  • 05.03.2011">Руководство по actionscript. часть 5, стр. 015
  • 08.03.2011">Руководство по actionscript. часть 4, стр. 088
  • 21.06.2011">Как правильно оптимизировать сайт для социальных сетей
  • 13.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.89
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.93
  • 07.03.2011">Руководство по actionscript. часть 4, стр. 117
  • 17.03.2011">Руководство по actionscript. часть 3, стр. 003
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 076
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.83
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 056
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 138
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 118
  • 18.03.2011">Руководство по actionscript. часть 2, стр. 111
  • 15.03.2011">Руководство по actionscript. часть 3, стр. 044
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...