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

Следующий код демонстрирует метод, генерирующий ошибку, которая никогда не будет обработана:

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

}

}

public class ErrorDemo extends Sprite { public function ErrorDemo ( ) { // Среда выполнения Flash: Ага, вот кто вызвал метод doSomething( ). // Но здесь все равно нет блока try. Хм. Я просмотрела весь стек вызовов // до самого верха и не нашла блока try. Если это отладочная версия // среды выполнения Flash, я сообщу о проблеме. Возможно, программист

// знает, что нужно делать.

var problemObject-.ProblemClass = new ProblemClass( ); problemObject. doSomething( );

}

}

Как мы только что увидели, метод не обязан обрабатывать свои собственные исключения, поскольку исключения обладают способностью подниматься вверх по стеку вызовов. Исключения метода не обязан обрабатывать даже код, вызывающий этот метод. Обработка исключения допускается на любом уровне в стеке вызовов. Любой метод может делегировать обработку исключений коду, вызывающему данный метод. С другой стороны, генерация исключений, которые никогда не будут обработаны, является дурным тоном и оказывает опасное воздействие на программу. Вы должны всегда обрабатывать исключения или, если столкнетесь с необработанным исключением, в первую очередь изменить свой код, чтобы избежать повторной генерации данного исключения.

Блок finally

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

Инструкция try/catch/finally содержит один (и только один) блок finally, который является ее последним блоком. Например:

try {

// Вложенные инструкции } catch (е:Тип0шибки1) {

II Обработка исключений типа Тип0шибки1. } catch (е:ТипОшибкип) {

II Обработка исключений типа ТипОшибкип. } finally {

// Этот код выполняется всегда, независимо от того, как завершается // выполнение блока try.

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

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

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

Полезные ссылки
Случайные записи
  • 11.03.2011">Руководство по actionscript. часть 4, стр. 012
  • 09.06.2011">Выбираем курицу
  • 12.03.2011">Руководство по actionscript. часть 3, стр. 126
  • 21.03.2011">Руководство по actionscript. часть 2, стр. 047
  • 21.03.2010">Интересные заметки за февраль
  • 02.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.107
  • 18.03.2011">Руководство по actionscript. часть 2, стр. 117
  • 22.03.2011">Руководство по actionscript. часть 2, стр. 014
  • 24.02.2011">Руководство по actionscript. часть 6, стр. 113
  • 28.02.2011">Руководство по actionscript. часть 6, стр. 015
  • 12.03.2011">Руководство по actionscript. часть 3, стр. 124
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.74
  • 10.04.2012">Twitter подала иск против разработчиков спам-приложений
  • 14.03.2011">Руководство по actionscript. часть 3, стр. 070
  • 18.08.2010">Как располагается информация о рабочем процессе
Опрос

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

View Results

Loading ... Loading ...