7-ТАРАУ Аластамалы жағдайларды өңдеу Ерекше жағдай немесе аластама – аппаратураны дұрыс қолданбаудан
туындайтын көзделмеген жəне төтенше жағдайлардың пайда болуы. Мы-
салы, нөлге бөлу немесе жадының жоқ адресіне хабарласу. Əдетте осындай
оқиғалар программаның қателік туралы жүйелік хабарламасымен аяқталуына
алып келеді. C++ тілі программалаушыға программаны қалпына келтіруге
жəне оның жұмысын жалғастыруға мүмкіндік береді.
C++ тілінің аластамалары құрал-жабдықтардың қателіктері немесе про-
грамма үзілістерін өңдеу, мысалы, Ctrl+C батырмаларын басуды өңдеу
сияқты асинхронды оқиғаларды өңдеуді қолдамайды. Аластамалар механизмі
программаның жұмысы нəтижесінде пайда болатын жəне тікелей түрде
көрсетілетін оқиғаларға ғана арналған. Программаның қандай да бір бөлігі
өзінен талап етілген əрекетті орындай алмаған кезде аластамалар туындай-
ды. Олар жұмысқа кіріскенде, программаның басқа бір бөлігі басқа іс-əрекет
орындауға талпынуы мүмкін.
Аластамалар есептеу процесін логикалық түрде екі бөлікке бөлуге мүмкіндік береді, олар – төтенше (апаттық) жағдайды анықтау жəне оны өңдеу. Бұл тек қана программаны жақсы құрылымдау үшін ғана маңызды
емес. Мұның басты себебі – қателікті тапқан функция оны түзету үшін не істеу
керектігін білмей, ал осы функцияны қолданатын код қателікті қалай түзетуге
болатынын біліп, тек оның пайда болу орнын анықтай алмауы мүмкін. Бұл,
əсіресе, кітапханалық функциялар мен көптеген модульдерден құралатын про-
граммаларды қолдану кезінде өте өзекті жұмыс болып табылады.
Аластамалардың басқа бір артықшылығы – шақырушы функцияға қате
туралы ақпаратты беру үшін қайтарылатын мəнді, параметрлерді немесе
ауқымды айнымалыларды қолданудың қажеті жоқ, сондықтан функцияның
интерфейсі кеңейтілмейді. Мысалы, синтаксисі бойынша мəн қайтара алмай-
тын конструкторлар үшін бұл өте маңызды болып саналады.
ЕСКЕРТУ Жалпы алғанда, аластамалар ретінде тек қателіктерді емес, мəліметтерді өңдеу кезінде туын-
дайтын қалыпты жағдайларды да қарастыруға болады, алайда бұл əрекеттің басқа шешімдерден
басымдылығы жоқ жəне ол программаның құрылымы мен оқылу жеңілдігін жақсартпайды.