Руководство по 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

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

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

Полезные ссылки
Случайные записи
  • 04.08.2010">Современное выравнивание макета
  • 15.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.53
  • 27.02.2011">Руководство по actionscript. часть 6, стр. 035
  • 03.04.2010">Туториалы по Illustrator
  • 11.03.2011">Руководство по actionscript. часть 3, стр. 149
  • 15.03.2011">Руководство по actionscript. часть 3, стр. 051
  • 22.04.2012">Facebook добавила кнопку «Слушать» на страницы музыкантов
  • 14.06.2011">Базовые сведения о графических редакторах.
  • 19.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.17
  • 21.03.2011">Руководство по actionscript. часть 2, стр. 034
  • 25.02.2011">Руководство по actionscript. часть 6, стр. 080
  • 14.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.68
  • 03.03.2011">Руководство по actionscript. часть 5, стр. 064
  • 23.05.2012">Machinima привлекла инвестиций на $35 миллионов благодаря Google
  • 04.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.16
Опрос

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

View Results

Loading ... Loading ...