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

Вложенные исключения

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

Предположим, что мы создаем многопользовательское веб-приложение, представляющее доску объявлений. Мы определяем следующие классы: BulletinBoard — основной класс приложения, GUIManager — класс, управляющий пользовательским интерфейсом, и User — класс, который представляет пользователя на доске. В классе BulletinBoard мы описываем метод populateUserList ( ), который отображает список активных пользователей на текущий момент. Выполнение мето-дapopulateUserList ( ) состоит из двух этапов: на первом этапе метод получает экземпляр класса List из экземпляра класса GUIManager нашего приложения. Класс List представляет отображаемый на экране список пользователей. Затем метод populateUserList ( ) заполняет экземпляр класса List пользователями из переданного массива экземпляров класса User. На обоих этапах существует потенциальная возможность возникновения исключения, поэтому в методе populateUserList ( ) используется вложенная структура try/catch/finally. Рассмотрим эту вложенную структуру поближе.

EcлинaпepвoмэтaпeвыпoлнeниямeтoдapopulateUserList ( ) экземпляр класса List окажется недоступным, будет сгенерировано исключение UserLis tNotFound экземпляром класса GUIManager. Исключение UserLi s tNotFound обрабатывается внешней инструкцией try/catch/finally.

Если, с другой стороны, экземпляр класса List окажется доступным, метод populateUserList ( ) перейдет к выполнению второго этапа, где с помощью цикла заполнит экземпляр класса List пользователями из переданного массива. На каждой итерации цикла, если ID текущего пользователя не может быть найдено, метод User. gelD ( ) генерирует исключение UserldNotSet. Оно обрабатывается вложенной инструкцией try/catch/finally.

Рассмотрим этот код:

public function populateUserList (users:Array):void { try {

// Приступаем к выполнению этапа 1… получаем экземпляр класса List. // Если метод getllserListC ) сгенерирует исключение, будет выполнен // внешний блок catch.

var ulist:List = getGUIManager( ).getUserList( ); // Приступаем к выполнению этапа 2… заполняем экземпляр класса List, for (var i-.Number = 0; i < users.length: i++) { try {

var thisUser:User = User(users[i]);

// Если метод getID( ) сгенерирует исключение, будет выполнен // вложенный блок catch. В противном случае пользователь будет // добавлен в экземпляр класса List вызовом метода addltem( ). ulist. addItem(thisUser. getName( ). thisUser. getID( )); } catch (e:UserIdNotSet) { trace(e. message);

continue; // Пропускаем этого пользователя.

}

}

} catch (e:UserListNotFound) { trace(e. message);

}

}

Теперь, когда мы рассмотрели конкретный пример вложенного исключения, познакомимся с общим процессом обработки вложенных исключений.

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

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

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

Полезные ссылки
Случайные записи
  • 04.06.2011">О дизайне веб-сайта
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.64
  • 19.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.11
  • 16.03.2011">Руководство по actionscript. часть 3, стр. 008
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 006
  • 18.03.2011">Руководство по actionscript. часть 2, стр. 112
  • 21.03.2011">Руководство по actionscript. часть 2, стр. 033
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 124
  • 16.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.26
  • 20.03.2011">Руководство по actionscript. часть 2, стр. 065
  • 11.03.2011">Руководство по actionscript. часть 3, стр. 153
  • 17.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.131
  • 19.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.16
  • 15.03.2011">Руководство по actionscript. часть 3, стр. 055
  • 06.03.2011">Руководство по actionscript. часть 4, стр. 147
Опрос

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

View Results

Loading ... Loading ...