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

TraceC’An error occurred: » + е. message); } catch (e:Error) {

// Здесь обрабатываются все остальные ошибки.

traceC’An error occurred: » + е. message);

}

Вариант 4. Пользовательские подклассы класса VirtualPetNameException.

В варианте 3 мы добавляли конфигурируемые отладочные сообщения в класс Virtual PetNameExcept ion. Он помог выявить проблему в нашем коде на этапе разработки, однако этот вариант не позволяет программе выполнить независимые действия по восстановлению работоспособности после возникновения отдельных

ошибок класса VirtualPet. Чтобы программа могла выполнить отдельные ветки кода в зависимости от типа сгенерированной ошибки класса VirtualPet, нам потребуются пользовательские подклассы класса VirtualPetNameException, описанные в варианте 4.

I Если вы хотите, чтобы программа могла находить различия между исключительными м$ j * ситуациями, определяйте отдельный подкласс класса Error для каждой ошибки. Не по-

_ ц# лагайтесь исключительно на значение переменной message, чтобы реализовать логику

ветвлений. Если ваш пользовательский подкласс класса Error определяет конструктор, принимающий сообщение об ошибке в качестве параметра, используйте это сообщение только для отладки, но не для построения логики ветвлений.

Чтобы иметь возможность устанавливать различие между тремя исключительными ситуациями класса VirtualPet, создадим три подкласса класса Error: VirtualPetNameException, Virtual Pet Insufficient DataExcept ion и Vir tualPetExcessDataException. Первый класс непосредственно расширяет класс Error. Оба следующих класса расширяют класс VirtualPetNameException, поскольку мы хотим отличать эти специфические типы ошибок от базового исключения, обозначающего недопустимые данные.

Рассмотрим исходный код наших трех подклассов класса Error, представляющих ошибки класса VirtualPet:

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

package zoo {

public class VirtualPetNameException extends Error { public function VirtualPetNameException (

message:String = «Invalid pet name specified.») {

super(message);

}

}

}

// Код в файле Virtual PetInsufficientDataException. as:

package zoo { public class VirtualPetlnsufficientDataException

extends VirtualPetNameException { public function VirtualPetlnsufficientDataException ( ) { super(«Pet name too short.»);

}

}

}

// Код в файле VirtualPetExcessDataException. as:

package zoo { public class VirtualPetExcessDataException

extends VirtualPetNameException { public function VirtualPetExcessDataException ( ) { super(«Pet name too long.»);

Каждый класс определяет значение своей переменной message и не позволяет изменять его в процессе использования. При обработке любого из описанных исключений класса VirtualPet наша программа будет руководствоваться типом данных исключения (а не значением переменной message) для нахождения различия между тремя типами исключений.

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

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

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

Полезные ссылки
Случайные записи
  • 11.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.16
  • 22.03.2011">Руководство по actionscript. часть 2, стр. 010
  • 26.02.2011">Руководство по actionscript. часть 6, стр. 061
  • 02.03.2011">Руководство по actionscript. часть 5, стр. 099
  • 19.10.2011">Памяти Стива Джобса
  • 05.08.2011">МФУ от Hewlett-Packard – качество и надежность
  • 27.02.2011">Руководство по actionscript. часть 6, стр. 048
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 114
  • 14.03.2011">Руководство по actionscript. часть 3, стр. 081
  • 22.03.2011">Руководство по actionscript. часть 2, стр. 004
  • 14.03.2011">Руководство по actionscript. часть 3, стр. 067
  • 11.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.3
  • 22.03.2011">Руководство по actionscript. часть 2, стр. 026
  • 17.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.12
  • 15.03.2011">Руководство по actionscript. часть 3, стр. 038
Опрос

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

View Results

Loading ... Loading ...