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 (...) запобігає аварійне завершення програми при виявленні необробленої виняткової ситуації.


 

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

34339. Фосфорная кислота 24 KB
  Н3РО4 безводная фосф кислота представляет собой бесцветное вещество плавящиеся при температуре 42. Однако на практике имеют дело с жидкой Н3РО4 что объясняется склонностью Н3РО4 к переохлаждению при темп 121С При небольшом переохлаждении она представляет собой густую сиропоподобную жидкость плотностью 188 г см^3 При нагревании водные растворы ортофосф кислоты теряют воду образуя пирафосфорная а затем метофосф кислота. Безводная ортофосф кислота очень агрессивна.
34340. Особенности производства калийных удобрений 29 KB
  Выделение хлористого калия из сильвинитовых руд может быть основано на различии механических физических или химических свойств составляющих компонентов. Переработка сильвинитов для получения хлористого калия по галургическому методу основана на физикохимических особенностях системы NCl КС1 Н2О. Эта особенность системы NCl КС1 Н2О используется для производства хлористого калия из сильвинитов по галургическому методу. Рационально построенная схема производства хлористого калия из сильвинита должна учитывать следующие технологические...
34341. Фосфорные минеральные удобрения 24 KB
  Фосфорные минеральные удобрения Фосф. К фосфорным удобрениям относятся простой и двойной суперфосфат принадлежащие к классу водорастворимых удобрений и комплексные удобрения. Фосфор вносят в почву и с помощью сложного удобрения аммофоса. Фосфорные удобрения получают как физическими так и химическими методами.
34342. Технология производства и экономическая эффективность выпуска и использования пластмасс 30.5 KB
  Технология производства и экономическая эффективность выпуска и использования пластмасс. Изделия из пластмасс наиболее часто получают методами горячего прессования литья под давлением экструзии выдувания обработки резанием. Прессование применяется главным образом для переработки термореактивных пластмасс. термореактивная смола переводится в плавкое состояние при котором и происходит вторая стадия процесса формование; затем происходит реакция поликонденсации и пластмасса отверждается становясь неплавкой и нерастворимой.
34343. Сырьевые материалы и основы производства резины 28 KB
  Резину изготавливают с помощью вулканизации. В результате вулканизации каучук превращается в прочную эластичную упругую массу – резину. В результате вулканизации молекулы каучука сливаются между собой дисульфидными мостиками в одну трехмерную макромолекулу. Большую роль играют так называемые ускорители вулканизации – органические соединения содержащие серу или азот меркаптобензтиазол дифенилгуанидин и др.
34344. Основные свойства и назначения природных и искусственных строительных материалов 21 KB
  Основные свойства и назначения природных и искусственных строительных материалов. Основные свойства строительных материалов можно разделить на несколько групп. К 1ой группе относятся физические свойства материалов: плотность и пористость. Ко 2й свойства характеризующие устойчивость материала к воздействию воды и низких температур: водопоглощение влажность влагоотдача гигроскопичность водопроницаемость водо морозостойкость.
34345. Классификация и свойства керамических материалов 21.5 KB
  Классификация и свойства керамических материалов Керамические строительные материалы – это искусственные каменные изделия получаемые из глиняных масс с добавками или без добавок других материалов путем формования и последующего обжига. Керамические материалы и изделия классифицируются по различным признакам. В зависимости от структуры керамические материалы разделяют на две основные группы: Плотные спекшиеся имеющие блестящий раковистый излом не пропускающие воду с водопоглощением менее 5 клинкерный кирпич для мощения дорог плитки для...
34346. Технология производства керамического кирпича 23 KB
  Технология производства керамического кирпича Несмотря на обширный ассортимент разнообразие форм и свойств керамических изделий основные этапы их производства являются общими и включают следующие стадии: Карьерные работы добыча транспортирование и хранение запаса глин подготовку глиняной массы формование изделий сушку отформованных изделий обжиг высушенных изделий обработку изделий глазурование ангобирование и прочее и упаковку. Формование изделий осуществляется преимущественно на прессах: при первом способе подготовке глиняной...
34347. Основные свойства, классификация и назначение стеклянных изделий 22 KB
  Материалы и изделия из стекла применяемые в строительстве в зависимости от назначения разделяются на следующие группы: Материалы для заполнения проемов зданий и сооружений – наиболее обширная группа строительных материалов из стекла включающая листовые стекла различных видов и стеклопакеты; в свою очередь листовое стекло подразделяется на листовое оконное витринное полированное и неполированное армированное узорчатое увиолевое трехслойное закаленное и др.; Материалы для строительных конструкций – профильное стекло стеклоблоки;...