throw түйінді сөзінен кейін көрсетілген объектінің типі
төмендегілердің біріне сəйкес келсе:
■
catch параметрінде көрсетілген типпен бірдей болғанда (параметр
Т ,
const T ,
T& немесе
const T& түрінде жазылуы мүмкін, мұндағы
Т –
аластаманың типі);
■
catch параметрінде көрсетілген типтің туынды типі болған жағдайда
(егер мұралау
public қол жеткізу кілтімен жүзеге асырылса);
■
нұсқауыштарды түрлендірудің стандартты ережелері бойынша
catch параметріндегі нұсқауыш типіне түрлендірілуі мүмкін нұсқауыш бо-
лып табылған кездерде өңдеуіш табылған болып саналады.
Аталған ережелерге сəйкес, туынды кластардың өңдеуіштерін базалық
класс өңдеуіштерінен бұрын орналастыру керек, өйткені бұған кері жағдайда
басқару оларға еш уақытта берілмейді.
void типті нұсқауыштың өңдеуіші кез
келген басқа типтің нұсқауышын автоматты түрде жасырады, сондықтан оны
да нақты тип нұсқауыштарының өңдеуіштерінен кейін орналастыру қажет.
Мысал қарастырайық.
#include class Hello{ // Өзінің құрылғаны жəне жойылғаны туралы // хабарлайтын класс public: Hello(){cout << "Hello!" << endl;} ~Hello(){cout << "Bye!" << endl;} }; void f1(){ // Файл ашамыз ifstream ifs("\\INVALID\\FILE\\NAME"); if (!ifs){