241
Ерекше жағдайларды өңдеу қалайша жүзеге асырылатынын қарастырайық.
□ Аластаманы өңдеу қате туындаған кезден басталады. Қателік пай-
да болған функция аластаманы генерациялайды. Бұл үшін аластаманың
түрін анықтайтын параметрі бар
throw
түйінді сөзі қолданылады. Параметр
тұрақты, айнымалы немесе объект болуы мүмкін жəне ол аластама туралы
ақпаратты аластама өңдеуішіне жөнелту үшін қолданылады.
□ Аластамаға сəйкес келетін өңдеуіш ізделіп, оған басқару беріледі.
□ Егер аластаманы өңдеуіш табылмаса,
terminate
стандартты функ-
циясы шақырылады, ол, өз кезегінде, ағымдағы процесті апаттық жағдайда
аяқтайтын
abort
функциясын шақырады. Процесті аяқтайтын өзіндік функ-
цияны да тағайындауға болады.
Кітаптың бірінші бөлімінде («Функциялар» бөлімін, 74 б. қараңыз) əрбір
функцияны шақыру кезінде стекте жергілікті (локалды) айнымалыларды
жəне шақырушы функцияға қайту адресін сақтауға арналған жады аймағы
құрылатыны туралы сөз болған.
Шақырулар стегі термині шақырылған, бірақ
əлі жұмысы аяқталмаған функциялар тізбегін білдіреді. Стекті тарқату деп
жергілікті айнымалыларға бөлінген жадыны босатып, басқаруды шақырушы
функцияға қайтару процесін айтады. Функция жұмысын аяқтаған кезде,
стектің табиғи түрде тарқатылуы орындалады. Дəл осы механизм аластамалар-
ды өңдеуде де қолданылады. Сондықтан аластама бар екені белгілі болғаннан
кейін, программаның орындалуын аластаманы генерациялау нүктесінен ары
қарай жалғастыру мүмкін емес. Бұл механизм келесі бөлімде толығырақ
қарастырылады.
Достарыңызбен бөлісу: