69720

Неспіймані виключення

Лекция

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

Не дивлячись на найвідчайдушніші спроби обробити виключення, бувають випадки, коли необхідно припинити виконання програми. Відновлення після таких виключень (а також фатальних) неможливе. C++ дозволяє використовувати функції terminate...

Украинкский

2014-10-09

26.5 KB

0 чел.

Тема 10: Неспіймані виключення

Не дивлячись на найвідчайдушніші спроби обробити виключення, бувають випадки, коли необхідно припинити виконання програми. Відновлення після таких виключень (а також фатальних) неможливе. C++ дозволяє використовувати функції terminate і set_terminate. Ці функції оголошені в заголовному файлі Ехсерт.Н. Функція terminate завершує виконання програми за умовчанням. Ви можете визначити вашу власну функцію завершення, викликавши функцію set_terminate і передавши їй адресу вашої функції.

Розглянемо приклад програмування, який ілюструє, як і коли використовувати функцію set_terminate, щоб закінчити програму. У лістингу 16.6 показаний початковий текст програми Error6.CPP, яка ілюструє неспіймані виключення. Програма оголошує функції badnew, solver і main. У прототипі функції solver перераховані виключення, що генеруються цією функцією. Проте ця функція врешті-решт генерує виключення, що термінує, коли вона викликає функцію badnews. Програма реагує на це виключення, закінчуючи виконання.

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

Terminating program. That's al I folks!

Лістинг 16.6

Початковий текст програми Error6.CPP

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

// обробку неспійманих виключень

«include <iostream.h> «include <except.h> «include <stdl ib,h>

// оголосити скелетні класи виключень class mainerror {; class secerror {; class Kaboom {;

void badnews() <

throw Kaboom(); }

void solver(int ncode) throw(mainerror, secerror) { if (ncode > 0) throw mainerror(); else if (ncode < 0) throw secerror(); badnews(); }

void myterminateo {

cout << "Terminating program. That's al I folks!\n";

exit(1); >

main() {

setjterm i nate(myterm i nate);

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

try {

solver(O);

catch (mainerror)

cout « "HANDI ing main exception\n"; catch (secerror)

cout « "Handiing secondary exception\n";

}

return 0;

}

Лістинг 16.6 багато в чому подібний до лістингу 16.5. Новий лістинг створений шляхом заміни функцій set_unexpected і myunexpected функціями set_terminate і myterminate і повідомлення, що видається останньою функцією. Не дивлячись на те, що програми в лістингах 16.5 і 16.6 подібні, вони виконують абсолютно різні дії. Лістинг 16.5 обробляє несподівані виключення, а лістинг 16.6 формально відмовляється від відновлення виконання програми і завершує її.


 

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

34879. Функції центрального банку 21 KB
  функції центрального банку Центральний банк головний банк що регулює грошовий обії країни і визначає основи кредитної політики держави. Особливість функціонування центрального банку Сучасні центральні банки характеризуються двоїстістю положення: з однієї сторони їхня діяльність повинна бути погоджена з економічною політикою держави з іншого боку вони повинні мати самостійність у проведенні фінансовокредитної політики держави.
34882. Бюджет країни:поняття і функції 21.5 KB
  Бюджет країни:поняття і функції Державний бюджет являє собою найбільший централізований грошовий фонд яким розпоряджається уряд який акумулюється за допомогою перерозподілу національного доходу і витрачається державою для здійснення своїх цілей. Види організаційної структури бюджету 1. Дворівневий бюджет країни і місцеві бюджети. Трирівнсвий бюджет країни бюджети наприклад штатів США земель Німеччина областей Україна.
34885. Бюджетний дефіцит.причини його виникнення і подолання в країнах з ринковою економікою 21.5 KB
  Основні причини існування бюджетного дефіциту 1. Однак автоматичного збільшення податкових надходжень не відбувається що призводить до появи бюджетного дефіциту. Основні джерела покриття бюджетного дефіциту державний кредит це фінансовоекономічні відносини де держава виступає у ролі позичальника.
34886. Державний борг. Вплив державного боргу на економіку країни 22.5 KB
  Державний борг-сума грошових средств які держава бере взайми щоб покрити дефіцит бютжету
34887. Податкова система, види податків 22 KB
  Податки у залежності від форми надходження: а прямі; б непрямі. Податки у залежності від формування рівня бюджету:а державні;б місцеві. Прямі податки що безпосередньо йдуть на формування бюджету: ■ податок на додану вартість; ■ прибутковий податок з громадян; ■ податок з прибутку підприємств; ■ плата за землю; ■ податок на нерухомість з юридичних та фізичних осіб; ■ податок з продажів. Непрямі податки це надбавки до цін і тарифів що поширюються на обмежене коло товарів та послуг: ■ акцизи; ■ мита; ■...