Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Документ Microsoft Office Word 97 - 2003 (4).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
540.67 Кб
Скачать

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 –це примусове завершення програми