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

После исполнения оператора throw нормальная работа программы немедленно прекращается и среда Flash пытается найти блок try, который содержит этот оператор. Например, рассмотрим оператор throw:

// Среда выполнения Flash: Хм. Оператор throw.

// Существует ли блок try, который содержит этот оператор?

throw new Error(«Something went wrong»);

Если оператор throw включен в блок try, среда выполнения Flash пытается найти блок catch, тип данных параметра которого совпадает с типом данных значения сгенерированного исключения (в данном случае с типом Error):

// Среда выполнения Flash: Отлично, я нашла блок try. // Существует ли соответствующий блок catch? try {

throw new Error(«Something went wrong»);

}

Если соответствующий блок catch найден, среда выполнения Flash передает управление программой этому блоку:

try {

throw new Error(«Something went wrong»); // Среда выполнения Flash: Найден блок catch, типом данных параметра // которого является Error! Поиск завершен. Сейчас я выполню этот // блок catch… } catch (e:Error) {

// Обработка ошибок…

}

Однако если соответствующий блок catch не может быть найден или если оператор throw изначально не был включен в блок try, среда Flash проверяет, размещен ли этот оператор внутри метода или функции. Если да, то среда выполнения ищет блок try вокруг кода, вызвавшего этот метод или функцию. Следующий код демонстрирует, как среда Flash реагирует на оператор throw, который размещен внутри метода и не включен в блок try:

public function doSomething ( ):void { // Среда выполнения Flash: Хм. Блок try отсутствует. // Проверю, кто вызвал этот метод, throw new Error(«Something went wrong»);

}

Если код, вызвавший этот метод или функцию, включен в блок try, среда Flash попытается найти соответствующий блок catch и, если такой блок будет найден, выполнит его. Следующий код демонстрирует исключение, генерируемое в методе и обрабатываемое там, где вызывается этот метод (то есть уровнем выше по стеку вызовов):

public class ProblemClass { public function doSomething ( ):void { // Среда выполнения Flash: Хм. Блок try отсутствует. // Проверю-ка я, кто вызвал этот метод, throw new Error(«Something went wrong»);

}

}

// Среда выполнения Flash: Ага, вот кто вызвал метод doSomething( ). // И вот блок try, включающий этот код, вместе с блоком catch, типом // данных параметра которого является Error! Моя работа сделана. // Блок catch, пожалуйста, выполняйтесь… try {

var problemObject:ProblemClass = new ProblemClass( ); problemObject. doSomething( ); } catch (e:Error) { // Обработка ошибок…

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

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

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

Полезные ссылки
Случайные записи
  • 01.03.2011">Руководство по actionscript. часть 5, стр. 130
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 095
  • 14.08.2011">Купи билет через интернет
  • 07.03.2011">Руководство по actionscript. часть 4, стр. 117
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.92
  • 11.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.5
  • 05.03.2011">Руководство по actionscript. часть 5, стр. 004
  • 05.03.2011">Руководство по actionscript. часть 5, стр. 009
  • 22.04.2012">Facebook добавила кнопку «Слушать» на страницы музыкантов
  • 09.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.142
  • 13.03.2011">Руководство по actionscript. часть 3, стр. 112
  • 03.10.2010">Как сделать матовую кожу?
  • 19.04.2012">Марк Цукерберг договорился о покупке Instagram за $1 млрд вместо $2 млрд
  • 23.08.2011">Покупайте только качественный трикотаж
  • 18.03.2011">Руководство по actionscript. часть 2, стр. 113
Опрос

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

View Results

Loading ... Loading ...