Изузеци

У програмском језику С++ постоји механизам изузетака који приликом појаве грешке врши безбедно прекидање започетих активности и предаје управљање одговарајућем руковаоцу изузецима.

izuzeci

Функција f1 може да обрађује грешке. Она се дели на део RADI – обрада када је све у реду, и на део ISPRAVI – обрада грешке.
У функцији f3 појави се грешка и наредбом
PRIJAVI предаје се управљање блоку ISPRAVI у функцији f1.

Руковање изузецима

try блок_обраде catch {тип_параметра име_параметра} тело_руковаоца                 catch {тип_параметра име_параметра} тело_руковаоца                  catch {тип_параметра име_параметра} тело_руковаоца                 catch {...} тело_руковаоца

блок_обраде – сложена наредба током чијег извршавања могу да се појаве изузеци. Иза овог блока обраде следи низ руковаоца изузецима. Сваки руковаоц има један тип_параметра а то је тип изузетка. Ако је уместо параметара наведено ради се о универзалном руковаоцу, који прихвата изузетке свих типова.

Ако се до краја блока обраде не појави изузетак, руковаоци изузецима се прескачу. Ако се појави изузетак, прекида се блок_обраде, извршава се одговарајући руковаоц и након тога скаче на крај наредбе try.

Пријављивање изузетака

throw израз

Тип израза је тип изузетка, вредност израза представља додатне информације о насталом проблему.

Најједноставније је за тип изузетка користити цео број чија вредност представља шифру грешке.

Предности употребе класног типа изузетка:
може да се пренесе велика количина информација од места откривања грешке до руковаоца изузецима
порука за опис проблема може да буде уграђена у класу
за сваку класу грешака може да се направи засебан руковаоц изузецима

Прихватање изузетака

Руковаоц R може да прихвати изузетак I ако:
– R и I су истог типа
– R је основна класа за I
– R и I су показивачи при чему је R показивач на основну а I на изведену класу

Оставите одговор

Попуните детаље испод или притисните на иконицу да бисте се пријавили:

WordPress.com лого

Коментаришет користећи свој WordPress.com налог. Одјавите се /  Промени )

Google photo

Коментаришет користећи свој Google налог. Одјавите се /  Промени )

Слика на Твитеру

Коментаришет користећи свој Twitter налог. Одјавите се /  Промени )

Фејсбукова фотографија

Коментаришет користећи свој Facebook налог. Одјавите се /  Промени )

Повезивање са %s