69721

Обмеження виняткових ситуацій

Лекция

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

Обмеження виняткових ситуацій Програміст може обмежити типи виняткових ситуацій які може генерувати функція в інших місцях програми. Фактично можна взагалі заборонити функції генерувати які б то не було виняткові ситуації.

Украинкский

2014-10-09

29.5 KB

0 чел.

Тема 11. Обмеження виняткових ситуацій

Програміст може обмежити типи виняткових ситуацій, які може генерувати функція в інших місцях програми. Фактично можна взагалі заборонити функції генерувати які б то не було виняткові ситуації. Для цього слід додати у визначення функції розділ throw.

тіп_возвращаємого_значенія імя_функциі (спісок_аргументов)   throw (спісок_тіпов)

{

//...

}

Хто визначення функції означає, що вона може генерувати лише виняткові ситуації, перераховані в списку типів. Спроба згенерувати виняткову ситуацію будь-якого іншого типу приводить до аварійного завершення програми. Якщо необхідно заборонити функції взагалі генерувати будь-які виняткові ситуації, список типів слід залишити порожнім.

Спроба згенерувати виняткову ситуацію, не підтримувану функцією, супроводжується викликом стандартної функції unexpected(). Потім по мовчанню викликається функція abort (), і програма завершується аварійно. Проте для непередбаченої виняткової ситуації можна передбачити власний обробник.

Наступна програма демонструє обмеження на типи виняткових ситуацій, які можуть генеруватися функцією.

// Обмеження   типів  виняткових  ситуацій

// що генеруються  функцією.

#include  <iostream>

using namespace  std;

// Дана  функція може  генерувати  лише  виняткові

// ситуації,   що мають   типи  int,   char  і  double

void Xhandler(int  test)   throw(int,   char,   double)

{

if(test==0)   throw  test;   

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

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

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

if(test==2)   throw  123.23;   

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

}

int main ()

{

cout  <<   "Начало\n";

try  

{

Xhandler(0); // Спробуйте також передати функції

// Xhandler() числа 1 і 2

}

catch(int i)

{

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

}

catch(char з)

{

cout << "Перехоплення строки\ п";

}

catch(double d)

{

cout « "Перехоплення дійсного числа\ п";

}

cout << "Кінець";

return 0;

}

У цій програмі функція xhandler Про може генерувати лише виняткові ситуації, що мають типи int, char і double. При спробі згенерувати виняткову ситуацію будь-якого іншого типу програма завершується аварійна (Інакше кажучи, викликається функція unexpected ().) Щоб побачити, як це відбувається, видалите із списку типів специфікатор int і повторите компіляцію програма

Важливо чітко розуміти, що обмеження розповсюджуються лише на типи виняткових ситуацій, які функція може генерувати в блоці try. Інакше кажучи, блоки try, функції, що знаходяться усередині, можуть генерувати будь-які виключи тільні ситуації. Таким чином, обмеження розповсюджуються лише на виключи тільні ситуації, функції, що генеруються зовні.

У наступному прикладі функція xhandler(). не може генерувати ніяких виняткових ситуацій.

//  Дана  функція не може  генерувати  ніяких

//  виняткових  ситуацій!

void Xhandler(int  test)   throw()

{

/* Наступні оператори більше не виконуються.

Вони приводять до аварійного завершення програми. */

if(test==0) throw test;

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

if(test==2) throw 123.23;

}


 

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

4585. Планування модельних експериментів. Стратегічне планування модельного експерименту 101 KB
  Планування модельних експериментів. Стратегічне планування модельного експерименту. Мета роботи: Ознайомитися з методами стратегічного планування імітаційних експериментів. Планування модельних експериментів Припустимо, три юні натураліст...
4586. Методи управління модельним часом: моделювання з постійним кроком і по особливих станах 101 KB
  Методи управління модельним часом: моделювання з постійним кроком і по особливих станах. Мета роботи: Вивчити методи управління модельним часом. Ознайомитися і програмно реалізувати алгоритми управління модельним часом з постійним кроком і по особли...
4587. Субтрактивне змішування кольорів. Диск Максвелла 38.52 KB
  Субтрактивне змішування кольорів. Диск Максвелла. Виконання роботи. Визначення координат ахроматичної точки. Підібрали такі розміри зовнішніх секторів з кольорами Cyan, Magenta, Yellow, що їх суміш дала ахроматичний колір. Отримали наступні коорд...
4588. Розрахунок припусків на механічну обробку оптичних деталей 47 KB
  Розрахунок припусків на механічну обробку оптичних деталей Мета роботи: Ознайомити студентів з методикою розрахунків припусків на розміри оптичних поверхонь деталей при їх обробці в оптичному виробництві. Завдання 1. Ознайомитись з видами припусків ...
4589. Інсталювання та налагодження мережевих компонент однорангової мережі Windows 9x. 103 KB
  Інсталювання та налагодження мережевих компонент однорангової мережі Windows 9x, Робота в одноранговій мережі. Керування доступом на рівні ресурсів. Використання спільних каталогів та мережевого принтера. Методичні вказівки з курсу Операційні ...
4590. Повышение эффективности разработки Приобского месторождения за счет оптимального подбора параметров работы электропогружных установок 3.05 MB
  Погруженные центробежные насосы (УЭЦН) в настоящее время являются одним из основных средств механизированной эксплуатации нефтяных скважин. На их долю приходится более 53% добываемой в России нефти и более 63% извлекаемой из скважин жидкости...
4591. Уточнения должностных функций, выполняемых менеджером по обучению персонала на предприятии ООО Техно-регион 183.99 KB
  Введение Развитие персонала является важнейшим условием успешного функционирования любой организации. Это особенно справедливо в современных условиях, когда ускорение научно-технического прогресса значительно убыстряет процесс устаревания профессион...
4592. Диссертация магистранта, аспиранта, докторанта 3.27 MB
  Настоящее пособие дает представление о специфике и месте диссертации магистранта, аспиранта и докторанта в системе научного исследования. В нем выделены этапы исследования, для каждого из которых разработаны ментальные карты, чем пособие выгодно отл...
4593. Особенности функционирования молодежных субкультур России XXI века 4.04 MB
  Введение Актуальность темы исследования. Актуальность изучения проблем становления и развития культуры молодежи как самой активной и быстро реагирующей на любые перемены социально-демографической группы общества определяется происходящими социокульт...