Программалау оқулық Алматы, 012 Қазақстан Республикасы Білім жəне ғылым министрлігінің «Оқулық»


catch(...){ ... /* өңдеуіш тұлғасы */ }



Pdf көрінісі
бет217/465
Дата23.05.2022
өлшемі3.66 Mb.
#458577
түріПрограмма
1   ...   213   214   215   216   217   218   219   220   ...   465
pavlovskaia-jogargy-dengeili

catch(...){ ... /* өңдеуіш тұлғасы */ }
Бұлардың бірінші формасы – өңдеуіш тұлғасында кез келген бір əрекеттерді 
орындау үшін параметр аты пайдаланылғанда, мысалы, аластама туралы 
ақпаратты шығару үшін қолданылады. Екінші формада аластама туралы 
ақпараттың қолданылуы қарастырылмаған, мұнда тек оның типі ғана маңызды 
рөл атқарады. Параметрдің орнындағы көп нүкте барлық ерекше жағдайларды 
өңдеуіштің өзі жүзеге асыратынын (тауып өңдейтінін) білдіреді. Өңдеуіштер 
жазылу реттілігімен қарастырылатындықтан, үшінші типтегі өңдеуішті оның 
басқа формаларынан кейін орналастырған жөн. Мысалы: 
catch(int i){
... // int типіндегі аластамаларын өңдеу
}
catch(const char *){
... // const char* типіндегі аластамаларын өңдеу 

catch(Overfl ow){
... // Overfl ow класы аластамаларын өңдеу

catch(j){
... // барлық қарастырылмаған аластамаларды өңдеу
}
Аластаманы өңдеуден кейін басқару бірден тікелей аластаманы өңдеуіштен 
соң орналасқан алғашқы операторға беріледі. Егер аластама 
try
-блокта гене-
рацияланбаса, онда басқару барлық өңдеуіштердің кодын орындамай, бірден 
осы аталған операторға беріледі. 


243
Аластамаларды айқындап атқару
throw
түйінді сөзінің көмегімен аластама генерацияланған кезде, C++ 
атқарушы кітапханасының функциялары келесідей əрекеттерді орындайды:
1) статикалық объект түрдегі 
throw
параметрінің көшірмесін жасайды, 
ол аластама өңделіп болғанша жойылмайды;
2) сəйкес келетін өңдеуішті табу мақсатында əрекет ету аймағынан тыс 
орналасқан жергілікті объектілердің деструкторларын шақыру арқылы стекті 
тарқату ісі атқарылады;
3) обект жəне əрекеттерді басқару осы объектімен үйлесімді типтегі 
параметрі бар өңдеуішке беріледі.
Стекті тарқату кезінде барлық өңдеуіштер өздеріне сəйкес келетіні 
табылғанша ішкі блоктан сыртқысына қарай əрбір деңгейде тізбектеле 
қарастырылады. 
Егер 


Достарыңызбен бөлісу:
1   ...   213   214   215   216   217   218   219   220   ...   465




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет