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


 

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

67258. ОБЩАЯ ХАРАКТЕРИСТИКА ЛЕГИРОВАННЫХ СТАЛЕЙ 29.5 KB
  Классификация примесей Все примеси содержащиеся в стали можно разделить на 4 группы: Это невредные примеси: марганец 0307 вес кремний 0204 их введение необходимо при производстве стали для раскисления жидкого металла причем в кипящей стали кремния мало 007.
67259. Мотивація й оплата праці 58.12 KB
  Результативність праці на кожному робочому місці зумовлює рівень економічної ефективності функціонування аграрного підприємства загалом. З-поміж різноманітних чинників, котрі становлять основу активізації зусиль персоналу підприємства...
67260. ПСЕВДОСЛУЧАЙНЫЕ ПОСЛЕДОВАТЕЛЬНОСТИ И ПРОЦЕДУРЫ ИХ МАШИННОЙ ГЕНЕРАЦИИ 127 KB
  Количество случайных чисел используемых для получения статистически устойчивой оценки характеристики процесса функционирования системы S при реализации моделирующего алгоритма на ЭВМ. Количество случайных чисел колеблется в достаточно широких пределах в зависимости от...
67261. Культура 18 века 55 KB
  Сущность эпохи Просвещения заключается в том что общественное бытие стало приводиться в соответствие с новым типом общественного сознания. Характерные черты Просвещения: В основе этого процесса – развитие промышленного производства рынок финансовое обращение завершение стадии...
67262. Методика гидрореабилитации детей 6-7лет, имеющих круглую спину 293.87 KB
  Анализ результатов реабилитации детей 6-7лет, имеющих круглую спин. Теоретические аспекты гидрореабилитации при нарушениях осанки у детей 6-7. Влияние водных процедур на организм человека. Этиопатогенез и клиническая картина нарушений осанки у детей 6-7.
67263. ПЕРЕЛОМЫ. КЛИНИКА И ДИАГНОСТИКА. ПЕРВАЯ ПОМОЩЬ. КОНСЕРВАТИВНОЕ ЛЕЧЕНИЕ 105 KB
  В развитых странах несмотря на увеличивающееся количество травм, число погибших меньше, чем в Российской Федерации. Основная причина этому - правильное оказание помощи пострадавшим. В 1994 г. в автомобильных катастрофах в России погибли более 35 тыс. чел., а свыше 189 тыс. получили увечья и стали инвалидами
67264. Перевантаження унарних операторів «++» та «--» 91.5 KB
  Можна перевантажувати унарні оператори інкремента "++" та декремента "--", або унарні "-" і "+". Як уже зазначалося вище, при перевантажені унарного оператора за допомогою функції-члена класу операторній функції жоден об'єкт не передається безпосередньо.
67265. Организационные основы безопасности жизнедеятельности. Организационные основы управления 24.64 KB
  Управление охраной труда. Оно осуществляется в соответствии с Основами законодательства по охране труда Министерством труда и социального развития РК и его территориальными органами представители которых наделены широкими полномочиями по контролю за условиями и охраной труда постановкой продукции...
67266. Толерантность как принцип поведения в мультикультурном мире 38 KB
  Основные подходы к определению понятия толерантность. Противостоять этому может толерантность как общечеловеческая обстановка культурного сознания и поведения. Благодаря усилиям ЮНЕСКО понятие толерантность стало международным термином. В ней толерантность определяется как признание единства и многообразия человечества взаимозависимости...