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


 

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

61897. 33 игры для развития глагольного словаря дошкольников 1005.17 KB
  Образовывать глаголы сначала от звукоподражаний, а затем и при помощи приставок; Использовать в речи различные глагольные формы (совершенный и несовершенный вид, прошедшее, настоящее и будущее время); согласовывать глаголы с существительным и т.д.
61898. Состав числа 8 48 KB
  Что вы знаете о числах от 1 до 10 на слайде 3 утёнка Сколько здесь утят Какой цифрой обозначаем С помощью каких двух слагаемых можно получить число 3 Это называется состав числа 3. Упражнения на ориентацию в пространстве слайд Сколько на рисунке детей Сколько мальчиков Девочек...
61899. В. Сухомлинський «Горбатенька». В. Нестайко «Руденький» 62.5 KB
  Нестайка розрізні слова ілюстрації до тексту завдання уроку пересувна дошка ілюстрації адвоката прокурора судді запис словникової роботи підручник О. а ланцюжкове читання тексту як це все було без мене б вибіркове читання тексту...
61901. П. Куліш Чорна рада. 1 та 2 частини 34.5 KB
  По весні 1663 року двоє подорожніх, верхи на добрих конях простували до Череваневого хутора... А. Ярище; Б. Вітрище; В. Хмарище. 2. Ніхто б і не сказав, що ці подорожні їдуть до веселого пана Череваня, бо самі вони були...
61902. П. Куліш Чорна рада. 3-5 частини 31 KB
  Перед подорожніми відкрився святий город Київщо сіяв як той А. через Нижній город; Б. через Середній город; В. Через Верхній город.
61903. ЯРМАРОК ПЕДАГОГІЧНИХ ІДЕЙ 27.5 KB
  вчитель математики МЕТА: використання на уроках теоретичного матеріалу для пояснення теми Чотирикутник з використанням презентацій і вчителя і учня Завдання: узагальнити теоретичний матеріал з тем: Чотирикутник і його елементи Паралелограм та його властивості Прямокутник та його властивості Ромб та його властивості Квадрат Опис даної розробки. В даній презентації узагальнено теоретичний матеріал з тем: Чотирикутник і його елементи Паралелограм та його властивості Прямокутник та його властивості Ромб та його...
61905. Творчість лауреата Міжнародної премії ім. Г.Сковороди, Заслуженого діяча мистецтв України поета Михайла Шевченка 68.5 KB
  Мета. Ознайомити із творчістю поета-земляка; розбудити творчу уяву й почуття всеосяжності поетичного слова; виховувати любов до отчого краю, його культури.