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

Ранее мы генерировали три исключения в методе setName ( ). Все три исключения использовали базовый класс Error. Приведем этот код снова:

if (newName. indexOfC «) == 0) {

// Имена не могут начинаться с пробела…

throw new ЕггогС»Invalid pet name specified.»); } else if (newName == «») {

throw new ErrorCPet name too short.»); } else if (newName. length > VirtualPet. maxNameLength) {

throw new ErrorCPet name too long.»);

}

В данном коде, чтобы провести различие между исключениями класса Virtual Pet и остальными исключениями в нашем приложении, мы использовали переменную message класса Error, которая, как уже известно, делает наши исключения неудобными для использования и может привести к появлению ошибок, вызванных человеческим фактором. Для отличия ошибок, относящихся к классу Virtual Pet, от других ошибок в нашем приложении лучше определить пользовательский подкласс класса Error с именем VirtualPetNameException, как показано в следующем коде:

// Код в файле VirtualPetNameException. as: package zoo {

public class VirtualPetNameException extends Error { public function VirtualPetNameException ( ) { // Передаем сообщение об ошибке в конструктор класса Error, которое // будет присвоено переменной message данного объекта ‘ superCInvalid pet name specified.»);

}

}

}

Теперь, когда у нас появился класс VirtualPetNameException, метод setName ( ) может генерировать свой собственный тип ошибки, как показано в следующем коде:

public function setName (newName:String):void { if (newName. indexOfС «) == 0) {

throw new VirtualPetNameException( ); } else if (newName == «») {

throw new VirtualPetNameException( ); } else if (newName. length > Virtual Pet. maxNameLength) {

throw new VirtualPetNameException( );

}

petName = newName;

}

Обратите внимание, что в предыдущем описании метода для всех трех исключительных ситуаций, относящихся к классу Virtual Ре t, генерируется один и тот же тип ошибки (VirtualPetNameException). Как разработчики класса VirtualPet мы столкнулись с проблемой определения степени детализации исключительных ситуаций. Мы должны решить не только то, в какой мере сообщения об ошибках класса

VirtualPet будут отличаться от других ошибок приложения, но и то, насколько эти ошибки будут отличаться друг от друга. У нас есть следующие варианты:

Вариант 1. Использовать один класс для исключительных ситуаций класса VirtualPet

В этом случае мы оставляем предыдущее описание метода s е tName ( ) как есть. Как вскоре станет известно, этот вариант позволяет отличать ошибки класса Vi rtual Ре t от других базовых ошибок в программе, однако мы не сможем отличить между собой три внутренние разновидности ошибок класса Virtual Pet (недопустимые данные, слишком короткое имя животного и слишком длинное имя животного).

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

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

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

Полезные ссылки
Случайные записи
  • 27.02.2011">Руководство по actionscript. часть 6, стр. 035
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.87
  • 08.03.2011">Руководство по actionscript. часть 4, стр. 094
  • 27.02.2011">Руководство по actionscript. часть 6, стр. 041
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 116
  • 19.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.38
  • 27.02.2011">Руководство по actionscript. часть 6, стр. 043
  • 23.02.2011">Руководство по actionscript. часть 7, стр. 038
  • 17.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.133
  • 02.10.2010">Установка шрифтов в Adobe Photoshop
  • 05.03.2011">Руководство по actionscript. часть 4, стр. 154
  • 12.03.2011">Руководство по actionscript. часть 3, стр. 120
  • 22.07.2011">Acer Aspire One 532g
  • 07.03.2011">Руководство по actionscript. часть 4, стр. 121
  • 30.05.2013">В течение недели LG продемонстрирует гибкую панель OLED в 5 дюймов
Опрос

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

View Results

Loading ... Loading ...