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

throw израз

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

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

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

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

Изузеци

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

Механизам изузетака

Механизам изузетака

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

Апстрактне класе

Виртуелна метода која није дефинисана у основној класи назива се апстрактна метода. Код ње се уместо тела функције пише =0;
Класа која садржи бар једну апстрактну методу назива се апстрактна класа. Не могу да се стварају објекти типа апстрактне класе. Улога апстрактних класа је да се из њих изводе друге класе.