68933

Перехоплення всіх виняткових ситуацій

Лекция

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

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

Украинкский

2014-09-27

32 KB

0 чел.

Лекція № 25

Тема: Перехоплення всіх виняткових ситуацій

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

Перехоплення всіх виняткових ситуацій

В деяких випадках немає сенсу обробляти окремі типи виняткових ситуацій, а необхідно перехоплювати їх всіх підряд. Для цього досить застосувати наступний вид оператора catch.

catch(...)

{

 // Обробка всіх виняткових ситуацій

}

Еліпсис означає, що даний оператор перехоплює всі виняткові ситуації. Його застосування ілюструється наступною програмою.

// В даному прикладі перехоплюються всі виняткові ситуації.

#include <iostream>

using namespace std;

void Xhandler(int test)

{

try {

if(test==0) throw test;

// Генерує об'єкт типу int 

if(test==l) throw 'a';

// Генерує об'єкт типу char 

if(test==2) throw 123.23;

// Генерує об'єкт типу double 

} catch (...) {

// Перехоплення всіх виняткових ситуацій

cout « "Перехоплення!\n";

}

}

int main() {

cout « "Початок\n";

 Xhandler(0) Xhandler(l) Xhandler(2)

 cout « "Кінець" return 0;

}

Результати роботи цієї програми приведені нижче.

Початок

Перехоплення!

Перехоплення!

Перехоплення!

Кінець Як видимий, все три виняткові ситуації, що згенерували операторами throw, перехоплюються одним оператором catch.

Оператор catch (...) особливо корисний, якщо поставити його в кінці послідовності операторів catch. У такому разі, навіть якщо виникне виняткова ситуація, не передбачена програмістом, вона буде перехоплена останнім оператором catch. Розглянемо злегка змінений варіант попередньої програми, в якому цілочисельні виняткові ситуації перехоплюються явно, а решта помилок відстежується оператором catch (...).

//В даному прикладі за умовчанням використовується оператор catch (...)

#include <iostream>

using namespace std;

void Xhandler(int test)

{

try {

if(test==0) throw test;

// Генерується об'єкт типу int 

if(test==l) throw 'a1;

// Генерується об'єкт типу char 

if(test==2) throw 123.23;

// Генерується об'єкт типу double

catch(int i){

// Перехоплення виняткової ситуації типу int 

cout << "Перехоплення цілого числа\n";

}

catch(...){

// Перехоплення решти всіх виняткових ситуацій

cout « "Перехоплення!\n";

}

}

int main()

{

cout << "Початок\n";

Xhandler(O); Xhandler(l); Xhandler(2);

cout « "Кінець";

return 0; }

Результати роботи цієї програми представлені нижчим.

 

Початок

Перехоплення цілого числа

Перехоплення!

Перехоплення!

перехоплення!

Кінець

Цей приклад демонструє, що застосування оператора catch (...) — хороший спосіб перехоплювати всі виняткові ситуації, які небажано обробляти явно. Крім того, операторові catch (...) запобігає аварійне завершення програми при виявленні необробленої виняткової ситуації.


 

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

25549. Сущность, цель, принципы, направления в РФ 17.58 KB
  В конце прошлого века в российской социологической литературе достаточно четко обозначились 2 концептуальных подхода интерпретирующие семейные отношения и необходимость воздействия на них в рамках семейной политики. Отсюда следовала цель семейной политики: укрепление семьи как социального института. Разнообразие подходов к раскрытию сущности и целей семейной политики привели к ее пониманию как комплексной и межотраслевой. В России семейная политика получила государственное определение в 1996 году в указе президента РФ Об основных...
25551. Традиции семейного воспитания 17.48 KB
  Семья как и другие социальные институты существует воспроизводя традиции следуя определенным образцам деятельности без которых немыслимо само ее развитие. Передаваясь из поколения в поколение традиции адаптируясь к условиям современной жизни не остаются застывшими раз навсегда данными. Но эти функции обычаи и традиции осуществляют разными путями.
25552. Удовлетворенность браком и условия сохранения супружества 12.99 KB
  Субъективная удовлетворенность браком – отношение реальности выполнения партнером своих обязательств к ожидаемым. Причины неудовлетворенности браком: неудовлетворенность адекватных потребностей нереалистич чрезмерно завш ожидания в отношении брала и партнера В иследованиях установили что семейные люди особенно те кто участ в браке ощущающие более высокую степень удовлетворенности. Удовлетворенность браком может быть: полная частичная Эйдемиллер и Юстицкис различают неудовлетворительность осознанная сопровожд конфликтом...
25553. Факторы семейного благополучия 13.1 KB
  Психологическая совместимость супругов. Психологическая совместимость взаимное принятие партнеров по общению и совместной деятельности основанное на оптимальном сочетании сходстве или взаимодополнительности ценностных ориентации личностных и психофизиологических особенностей. Компоненты с семейной психологической совместимости: Психофизиологическая совместимость сексуальная совместимость. Ценностная совместимость любовь нежность взаимоуважение верность деликатность Личностная совместимость наличие благоприятных качеств...
25554. Предприятие, цели и задачи его создания. Основные типы предприятий. Аренда, лизинг, франчайзинг 123.5 KB
  Предприятие – это самостоятельный специализированный субъект созданный в порядке установленном законом для производства продукции выполнения работ и оказания услуг с целью удовлетворения общественных потребностей и получения прибыли. 2 по структуре продукции: узкоспециализированные многопрофильные комбинированные. Оплата труда непроизводственного персонала включается в себестоимость продукции косвенным путем. Затраты на оборотные средства включаются в себестоимость изготавливаемой продукции в полном объеме по мере потребления.
25555. Учение Платона о душе 28.5 KB
  Вожделеющая и страстная души должны подчиняться разум ной которая одна может сделать поведение нравственным. И наконец разумную часть души Платон отождествляет с возницей который ищет правильный путь и направляет по нему колесницу управляя конем. В описании души Платон придерживается четких чернобелых критериев доказывая что есть плохие и хорошие части души: разумная часть для него является однозначно хорошей в то время как вожделеющая и страстная – плохими более низкими. У человека Платон выделял два уровня души – высший и низший.
25556. Аристотель о душе и ее способностях 30.5 KB
  Форма – придает материи качественную определенность составляет сущность вещей. Материя не может быть бесформенной форма не может не иметь материальной основы. Душа – форма живой материи. Душа и тело связаны как материя и форма т.
25557. Неоплатонизм и томизм в философии и психологии Средневекового периода 30.5 KB
  Развитие мира – постоянное восхождение или нисхождение божественного Ступени: Божественное первоначало Божественный ум Божественная душа Природа По мере нисхождения верховного начала оно передается во множество умов и душ. Первично божественное материя – последняя стадия дробления первоначала Душа человека происходит из мировой души она нематериальна непространственна едина. Уровни или части души: Умопостигаемая душа Чувственная душа Тело Деятельность души функции Обращение к мировому разуму Обращение к чувственному миру и...