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


 

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

46153. Основы организации работы по ведению бухгалтерского учета в кредитных организациях 200.79 KB
  Введение В процессе становления рыночной экономики когда банки действуют в условиях жесткой конкуренции и нестабильной экономической ситуации бухгалтерский учет не сводится только к отражению операций банка. Основная роль его состоит в использовании бухгалтерской информации для планирования активных и пассивных операций банка. Бухгалтерский учет в банке дает возможность ответа на вопросы о состоянии и движении имущества банка денежных средств кредитов фондов о расходах и доходах финансовых результатах деятельности банка.
46154. Создание поверхности для защиты от коррозии внутренних и внешних поверхностей труб тепловых и водопроводных систем 5.53 MB
  Сбор нагрузок на колонны. Колонны предназначены для поддержания железобетонного перекрытия.396 Этажи От перекрытия и покрытия Собственный вес колонны Расчетная суммарная нагрузка Длительная Кратковременная NДЛ NКР NПОЛН 4 1 1171 1223 Расчет нагрузки колонны Подсчет расчетной нагрузки на колонну. Расчет колонны первого этажа N=3504кН; ℓ 01=2.
46155. Оценка эффективности предпринимательской деятельности ОАО «Газпром» 208 KB
  Анализ эффективности деятельности предприятия ОАО Газпром 8 2. Для повышения деловой и инвестиционной активности предприятия все более актуальна необходимость более эффективного управления ими на основе комплексной достаточно полной и объективной системы оценок их финансовохозяйственной деятельности в сложной экономической обстановке рыночных изменений в условиях динамичной внешней среды. Анализ финансовохозяйственной деятельности служит базой для принятия управленческих решений переоценить его значение для эффективного функционирования...
46156. СИСТЕМНО-СТРУКТУРНЫЕ ПОДХОДЫ К МОДЕЛИРОВАНИЮ СИСТЕМ УПРАВЛЕНИЯ 159 KB
  Суть системного подхода можно определить так: это методология научного познания и практической деятельности а также объяснительный принцип в основе которых лежит рассмотрение объекта как системы. Иерархичность познания требующая многоуровневого изучения предмета: изучение самого предмета собственный уровень; изучение этого же предмета как элемента более широкой системы вышестоящий уровень; изучение этого предмета в соотношении с составляющими данный предмет элементами нижестоящий уровень. Можно также сказать что системный...
46157. ОСНОВЫ ТРАНСПОРТНО-ЭКСПЕДИЦИОННОГО ОБСЛУЖИВАНИЯ 1.13 MB
  Сироткин ОСНОВЫ ТРАНСПОРТНОЭКСПЕДИЦИОННОГО ОБСЛУЖИВАНИЯ КУРСОВОЕ ПРОЕКТИРОВАНИЕ Учебнометодическое пособие Нижний Новгород 2010 ФЕДЕРАЛЬНОЕ АГЕНАСТВО ПО ОБРАЗОВАНИЮ ГОУ ВПО Волжский государственный инженернопедагогический университет А. Сироткин...
46158. Социология. Общий курс. Учебное пособие 2.78 MB
  социология: общий курс. тощенко получило признание во многих вузах россии так как наука социология в нем трактуется как социология жизни.5я73 тощенко жан терентьевич социология общий курс генеральный директор в. социология как наука.
46159. Web-браузер 16.01 KB
  Среди множества разнообразных программ просмотра гипертекстовых документов наибольшее распространение получили Microsoft Internet Explorer далее Explorer и Netscpe Nvigtor далее Netscpe. Ни та ни другая компания ничего не зарабатывает на распространении своих браузеров Explorer╗бесплатная программа а Netscpe условнобесплатная программа. Далее мы будем ориентироваться на браузер Netscpe. Методы работы с браузером Explorer практически не отличаются от методов работы с Netscpe что позволит приверженцам данного программного продукта...
46160. АДМИНИСТРАТИВНОЕ ПРАВО РОССИИ 797 KB
  Формы и методы государственного управления. Формы государственного управления. Методы государственного управления Правовые акты государственного управления Административно-правовое регулирование в сферах и отраслях управления.