69718

Вкладені блоки try-catch

Доклад

Информатика, кибернетика и программирование

При обробці дійсно складних виключень, ви можете зацікавитися можливістю вкладати блоки try і оператори catch всередину інших операторів catch. C++ допускає вкладені блоки try, іншими словами, ви можете згенерувати нове виключення при обробці попереднього.

Украинкский

2014-10-09

28 KB

0 чел.

Тема 8: Вкладені блоки try-catch

При обробці дійсно складних виключень, ви можете зацікавитися можливістю вкладати блоки try і оператори catch всередину інших операторів catch. C++ допускає вкладені блоки try, іншими словами, ви можете згенерувати нове виключення при обробці попереднього. Характер такої дії залежить від першого оброблюваного вами виключення.

Розглянемо приклад програмування. У лістингу 16.2 показаний початковий текст програми Error2.CPP, яка ілюструє вкладені блоки try. Програма генерує головне виключення, а потім - вторинну помилку в опера¬торе catch, який обробляє головне виключення. Цього оператора містить вкладений блок try і вкладені опе¬ратори catch. Операторів catch виводять повідомлення про виключення, яке вони обробляють.

Представимо виведення програми в лістингу 16.2.

Throwing the main exception Hand I i ng ma i n except i on Handl ing exception еггогз

Лістинг 16.2

Початковий текст програми Error2. СРР

// Програма ілюструє

// вкладені блоки try

#include <iostream.h>

// оголосити скелетні класи виключень class mainerror {; class error! {; class error2 {; class еггог3{;

main()

{

int nnum = 123;

// генеруємо виключення

}

cout « "Throwing the main exception\n";

try {

throw mainerror(); }

catch (mainerror) { cout « "HANDI ing main exception\n"; try { if (nnum < 10) throw error1(); else if (nnum < 100)

throw error2(); else if (nnum < 1000) throw error3();

catch (errorl)

cout « "Handling exception errorl"; catch (error2)

cout « "Handling exception error2"; catch (еггогз)

cout « "Handling exception еггогз"; catch (...)

cout « "Handling other errors\n";

catch (int ncode)

cout « ncode « " is not а valid int\n"; catch (char ccode)

cout « ccode « " is not а val id char\n" catch (long I Code)

cout « I Code « " is not а val id long\n"

return 0;

У лістингу 16.2 оголошені скелетні класи виключень mainerror, errorl, error2 і еггогз, а також визначена функція main, яка оголошує і ініціалізував змінну nnum типу int. Функція виводить повідомлення, а потім генерує виключення mainerrr в блоці try, за яким слідують чотири оператори catch, оброблювальних виключень типів mainerror, int, char і long. Першого оператора catch виводить повідомлення про помилку, а потім виконує мультіальтернатівний оператора if усередині вкладеного блоку try. Цього оператора if генерує виключення errorl або error2, або еггог3 залежно від значення змінної nnum. За вкладеним блоком try слідують чотири оператори catch, які обробляють виключення errorl, error2, еггогз і всі інші виключення. Кожного оператора catch просто виводить повідомлення про помилку.


 

А также другие работы, которые могут Вас заинтересовать

4347. Информационная архитектура лекционные материалы по курсу Интернет-технологии 1.02 MB
  Введение Разрабатывая Web-сайты, каждый из нас не первый год старается идти по кратчайшему пути. Это особенно характерно для работы над проектами с небольшим бюджетом. И из всех кратчайших путей самым дорогим оказывается тот, когда мы пропускаем эта...
4348. Графический пользовательский интерфейс. Лекционный материал 770 KB
  Введение Итак, мы подошли через построение структуры контента и проектирование интерактивного процесса к последней части архитектуры – интерфейсу. Графическому пользовательскому интерфейсу /3/: графический – в нем применяются как рис...
4349. Интернет технологии: история, возможности, средства 202 KB
  Интернет технологии: история, возможности, средства История Интернет Возможности Интернет Как работает Интернет Web-приложения Инструменты создания web – сайтов и приложений История Интернет В 1969 году в США была создана компьютерная сеть ARPA...
4350. Архитектура интернет-технологий 260 KB
  Как работает Интернет Основные компоненты HTML - протоколы Адресация в сети Интернет Схема поиска IP-адреса по доменному имени Сервисы Интернет (основные службы) Утилиты Как работает Интернет Поддержка функционирования Web-серверов предусматривает с...
4351. Создание WEB – САЙТА 201 KB
  Классификация сайтов Организационно- технические вопросы создания сайта Основные этапы создания Web сайта Рекомендации по созданию сайта Проблемы создания сайта Что нужно, чтобы создать эффективную сеть сайтов Классификация сайтов В настоящее время ...
4352. Раскрутка WEB-Сайтов 256.5 KB
  Термины. Методы раскрутки сайта. Регистрация в поисковых системах и каталогах. Регистрация на поисковых сайтах и директориях. Что такое индекс цитирования Ссылочное ранжирование. Влияние собственных ресурсов поисковых машин. Перспективы развития...
4353. Управление содержанием WEB Сайтов 288 KB
  Управление содержанием WEB Сайтов Основные функции поддержки работоспособности сайта Сбор информационных материалов. Источники информации для Web сайта Обеспечение доступа к Web сайту (техническая поддержка, хостинг). Обновление информации на Web са...
4354. РЕШЕНИЕ ЗАДАЧ С ПОМОЩЬЮ КОМПЬЮТЕРА 175.69 KB
  РЕШЕНИЕ ЗАДАЧ С ПОМОЩЬЮ КОМПЬЮТЕРА Решение задач с помощью компьютера включает в себя следующие основные этапы, часть из которых осуществляется без участия компьютера.
4355. Компьютерная схемотехника и архитектура компьютеров 446.5 KB
  Комбинационным цифровым устройством (КЦУ) называется устройство, выходные сигналы которого в некоторый момент времени работы однозначно определяются лишь сигналами, действующими в тот же момент времени на его входах. В КЦУ отсутствуют элементы памят...