Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Введення в поняття та обробку критичних ситуації




Введення в поняття та обробку критичних ситуації

План

Тема: Обробка критичних ситуацій

Лекція № 21

2. Оператори системи обробки критичних ситуацій

 

Несприятливі ситуації, які виникають в процесі роботи програми і перешкоджають її нормальному виконанню називаються критичними ситуаціями (КС) або виключеннями (exeptions). Процес виникнення виключення називається генерацією або збудженням КС (exeption generation).

КС можуть генеруватись як внутрішніми, так і зовнішніми чинниками. Наприклад, у випадку нехватки пам'яті причина може полягати у неправильній роботі ОС, перевитраті пам'яті самою програмою і т. д. Якщо програма не може розв'язати цю КС, то вона аварійно завершиться. Процес розв'язання виключення називається обробкою КС (exeption handling)

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

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

Обробка КС, як програмна технологія, має свої терміни та концепції. У світлі власної теорії КС розглядається не як результат, а як умова виникнення, яка вимагає спеціалізованої обробки. Це спричинено тим, що з точки зору програміста, КС розглядається деяким механізмом повідомлень для прийняття мір у випадку виникнення умов КС.

Процес обробки КС складають такі концепції:

· генерується КС посиланням (throw) інформаційного "об'єкта", який містить відомості про КС. Цей об'єкт може бути довільного допустимого в С++ типу;

· обробка КС здійснюється оператором перехоплення виключення (сatch), в тілі якого міститься код, який є реакцією програми на конкретну КС і називається обробником КС *. За своїм призначенням оператор перехоплення переймає на себе лише умову КС, що посилається іншим процесом. Оператор сatch перехоплює усі КС, по при те, що містити може обробники лише окремих КС;

· будь-яка спроба перехоплення КС здійснюється в межах дії оператора випробовування (try) процесів, які можуть згенерувати КС. Незважаючи на те, що обробляються лише окремі КС, оператор try випробовує процеси на усі можливі КС

Отже, концептуальність обробки КС в С++ визначає, що обробка виключень в С++ організовується використанням трьох операторів: try, catch іthrow.

Організація обробки КС має певну структуру. Після умови виникнення КС генерується throw виключення, яке перехоплюється оператором catch, обробник якого обробляє КС. Сама умова виникнення КС перевіряється в тілі оператора try, який випробовує поточний процес на можливість появи КС.

Загальна схема обробки КС має вид:

try

{

// код;

// явний чи неявний виклик throw для генерації КС

}

catch (Тип1 arg) // перехоплення КС типу Тип1

{ // обробники КС Тип1

}

catch (Tип2 arg) // перехоплення КС типу Тип1

{ // обробники КС Тип2

}

 




Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 759; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.