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 просто виводить повідомлення про помилку.


 

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

48972. Проект дроссельного делителя потока, рассчитанного на номинальное, максимальное и минимальное давление 394 KB
  1 состоят из корпуса 4 делительного золотника 2 со сменными диафрагмами 1 каждый типоразмер аппарата комплектуется тремя парами диафрагм обеспечивающими три настройки уравнительного золотника 3 и пробок. При равном давлении в отводах золотника 2 и 3 находятся в средних положениях перепады давлений на диафрагмах одинаковы и поток масла из подводного отверстия делясь на две равные части поступает в отводные линии. Если давление в одной из отводных линий например правойувеличивается возрастает давление в правой торцовой полости...
48973. Изготовление штампов холодной штамповки с применением стали Х12М 117 KB
  Обосновать выбор стали. Указать возможные замены стали другой. Основная часть ШТАМПОВЫЕ СТАЛИ Для обработки металлов давлением применяют инструменты штампы пуансоны ролики валики и т. Стали применяемые для изготовления инструмента такого рода называют штамповыми сталями по виду наиболее распространенного инструмента.
48974. Інноваційні технології приготування страв з морського гребінця 551 KB
  Виробництво харчової продукції КУРСОВА РОБОТА з дисципліни: Технологія виробництва кулінарної продукції Тема: Інноваційні технології приготування страв з морського гребінця Керівник: Г. Значення страв з морського гребінця у харчуванні людини. Класифікація асортимент страв з морського гребінця 1. М'ясо морського гребінця легко засвоюється в організмі.
48975. Контурно-графічний аналіз результатів двохфакторного експерименту 667.5 KB
  Тернопільський національний технічний університет імені Івана Пулюя До постановки наукової проблеми про особливий статус медіакомунікацій масового спілкування в системі соціальних комунікацій Постановка наукової проблеми. До них відносять різновиди такого медіаспілкування яке по природі своїй є масовим що дає право називати медіа як масмедіа. Індивідуальна особистісна комунікація та масова комунікація це ті два основні види спілкування які природно супроводжують людину в усіх її особистісних та суспільних виявах....
48978. Автоматизація процесу сушіння деревини 270 KB
  Сушіння матеріалів є енергоємким процесом звязаним зі значною витратою палива пару а також електроенергії а отже використання високоточної автоматики дозволить значно скоротити термін сушіння та знизити енергетичні затрати. Також поширеним є сушіння круглих лісоматеріалів деталі опор ліній електропередачі зв'язки будівельні деталі. На даний час проблема автоматизації сушіння деревини вирішувалась шляхом використання застарілих як морально так і в фізичному плані приладів.
48979. Проектування бази даних готельного комплексу 334 KB
  Тема роботи: Проектування бази даних готельного комплексу Необхідно: спроектувати й реалізувати реляційну базу даних для централізованого зберігання інформації з метою полегшення і систематизації даних замовлень клієнтів. Моделювання реляційної бази даних.
48980. Методи прогнозування основних параметрів діяльності організації та їх ефективного застосування на прикладі ГК «Хлібодар» 279.5 KB
  Центральні поняття дослідження прогнозування основних параметрів діяльності організації. Сучасні наукові підходи до розуміння прогнозування основних Параметрів діяльності організації ПРОГНОЗУВАННЯ ОСНОВНИХ ПАРАМЕТРІВ ДІЯЛЬНОСТІ ОРГАНІЗАЦІЇ В СИСТЕМІ МЕНЕДЖМЕНТУ СУЧАСНОГО ПІДПРИЄМСТВА. Прогнозування в системі стратегічного менеджменту підприємства.