
- •10. Конструктором
- •24.Контейнерні класи.
- •Ітератор бібліотеці(iterator)
- •Категорійітераторів
- •Ітераторипримітивів
- •26. Контейнерів - векторі (vector)
- •2. Static_cast (перетворення без перевірки)
- •3. Const_cast (відкидання const або volatile)
- •33. Обробка виключних ситуацій
- •34. Обробка виключних ситуацій
33. Обробка виключних ситуацій
Виключна не передбачена ситуація або подія – це така ситуація яка призводить до не правильного виконання програми, до аварійної ситуації, до неправильної обробки данних.
Причинами виключних ситуацій можуть бути як зовнішні так і внутрішні чинники. Основною задачею виключних ситуацій є їх виявлення та обробка. Виключна ситуація це помилки в програмі. Для роботи з помилками ще в стандартному ANSI С було ряд засобів які дозволяли виявляти перехвачувати різні помилки в процесі програми також ANSI С були засобі які не приводили до завершення програми і дозволяли певним чином працювати. Для обробки виключних ситуацій в мові С використовують набір спеціальних функцій. В мові С++ спеціальні оператори під керування винятками розуміють стандартний інтерфейс для виняткових станів і подій виключення.
В мові С для керування виключеннями використовують SETJMP, LONGJMP, Matherr, new_handeer, які знаходяться в бібліотеці process.h and stdlib.h
Функції abort –це примусове завершення програмиTry Інструкції, які можуть порушувати винятки, повинні бути укладені в try-блок. Такий блок починається з ключового слова try, за яким йде послідовність інструкцій, укладена у фігурні дужки, а після цього - список обробників, званих catch-пропозиціями. Try-блок групує інструкції програми і асоціює з ними обробники винятків. Куди потрібно помістити try-блоки у функції main (), щоб були оброблені винятки popOnEmpty і pushOnFull?
for (int ix = 1; ix <51; + + ix) {
try {/ / try-блок для винятків pushOnFull
if (ix% 3 == 0)
stack.push (ix);
}
catch (pusOnFull) {... }
if (ix% 4 == 0)
stack.display ();
try {/ / try-блок для винятків popOnEmpty
if (ix% 10 == 0) {
int dummy;
stack.pop (dummy);
stack.display ();
}
}
catch (popOnEmpty) {... }
}
catch У мові C + + винятки обробляються в пропозиціях catch. Коли якась інструкція всередині try-блоку збуджує виняток, то проглядається список наступних пропозицій catch у пошуках такого, який може його обробити.
Catch-обробник складається з трьох частин: ключового слова catch, оголошення одного типу або одного об'єкта, укладеного в круглі дужки (воно називається оголошенням виключення), і складовою інструкції. Якщо для обробки виключення вибрано деякий catch-пропозиція, то виконується ця складова інструкція. Розглянемо catch-обробники винятків pushOnFull і popOnEmpty у функції main () більш докладно:
catch (pushOnFull) {
cerr << "trying to push value on a full stack \ n";
return errorCode88;
}
catch (popOnEmpty) {
cerr << "trying to pop a value on an empty stack \ n";
return errorCode89;
}
34. Обробка виключних ситуацій
Виключна не передбачена ситуація або подія – це така ситуація яка призводить до не правильного виконання програми, до аварійної ситуації, до неправильної обробки данних.
Причинами виключних ситуацій можуть бути як зовнішні так і внутрішні чинники. Основною задачею виключних ситуацій є їх виявлення та обробка. Виключна ситуація це помилки в програмі. Для роботи з помилками ще в стандартному ANSI С було ряд засобів які дозволяли виявляти перехвачувати різні помилки в процесі програми також ANSI С були засобі які не приводили до завершення програми і дозволяли певним чином працювати. Для обробки виключних ситуацій в мові С використовують набір спеціальних функцій. В мові С++ спеціальні оператори під керування винятками розуміють стандартний інтерфейс для виняткових станів і подій виключення.
В мові С для керування виключеннями використовують SETJMP, LONGJMP, Matherr, new_handeer, які знаходяться в бібліотеці process.h and stdlib.h
Функції abort –це примусове завершення програми
Цей оператор дуже простий: після слова throw через пробіл записується об'єкт класу-винятки. Досить часто він створюється прямо в операторі throw, наприклад:
throw new ArithmeticException ();
Оператор можна записати в будь-якому місці програми. Він негайно викидає записаний у ньому об'єкт-виняток і далі обробка цього винятки йде як зазвичай, буцімто тут сталося розподіл на нуль або інше дію, що викликало виключення класу ArithmeticException.
Отже, кожен блок catch про і перехоплює один певний тип винятків. Якщо потрібно однаково обробити кілька типів виключень, то можна скористатися тим, що класи-винятки утворюють ієрархію.
35. Обробка виключних ситуацій
Виключна не передбачена ситуація або подія – це така ситуація яка призводить до не правильного виконання програми, до аварійної ситуації, до неправильної обробки данних.
Причинами виключних ситуацій можуть бути як зовнішні так і внутрішні чинники. Основною задачею виключних ситуацій є їх виявлення та обробка. Виключна ситуація це помилки в програмі. Для роботи з помилками ще в стандартному ANSI С було ряд засобів які дозволяли виявляти перехвачувати різні помилки в процесі програми також ANSI С були засобі які не приводили до завершення програми і дозволяли певним чином працювати. Для обробки виключних ситуацій в мові С використовують набір спеціальних функцій. В мові С++ спеціальні оператори під керування винятками розуміють стандартний інтерфейс для виняткових станів і подій виключення.
В мові С для керування виключеннями використовують SETJMP, LONGJMP, Matherr, new_handeer, які знаходяться в бібліотеці process.h and stdlib.h
Функції abort –це примусове завершення програми
Throw
Цей оператор дуже простий: після слова throw через пробіл записується об'єкт класу-винятки. Досить часто він створюється прямо в операторі throw, наприклад:
throw new ArithmeticException ();
Оператор можна записати в будь-якому місці програми. Він негайно викидає записаний у ньому об'єкт-виняток і далі обробка цього винятки йде як зазвичай, буцімто тут сталося розподіл на нуль або інше дію, що викликало виключення класу ArithmeticException.
Отже, кожен блок catch про і перехоплює один певний тип винятків. Якщо потрібно однаково обробити кілька типів виключень, то можна скористатися тим, що класи-винятки утворюють ієрархію.
36. Обробка виключних ситуацій
Виключна не передбачена ситуація або подія – це така ситуація яка призводить до не правильного виконання програми, до аварійної ситуації, до неправильної обробки данних.
Причинами виключних ситуацій можуть бути як зовнішні так і внутрішні чинники. Основною задачею виключних ситуацій є їх виявлення та обробка. Виключна ситуація це помилки в програмі. Для роботи з помилками ще в стандартному ANSI С було ряд засобів які дозволяли виявляти перехвачувати різні помилки в процесі програми також ANSI С були засобі які не приводили до завершення програми і дозволяли певним чином працювати. Для обробки виключних ситуацій в мові С використовують набір спеціальних функцій. В мові С++ спеціальні оператори під керування винятками розуміють стандартний інтерфейс для виняткових станів і подій виключення.
В мові С для керування виключеннями використовують SETJMP, LONGJMP, Matherr, new_handeer, які знаходяться в бібліотеці process.h and stdlib.h
Функції abort –це примусове завершення програми