Python'дагы кокустуктуу учурларга киришүү
Бул бөлүмдө Python'дагы кокустуктуу учурлар каралып чыгат. Алардын эмне экенин түшүнүү үчүн, адегенде түшүнүк бериш керек.
Каалаган программаны жазганда, иштеп чыгуучу колдонулган программалык-техникалык механизмдердин туура иштей берерин жашыруун түрдө эсептейт.
Бирок, бул ар дайым ушундай болбойт. Тармак аркылуу маалымат бергенде, байланыш үзүлүп, маалыматтар бизге туура эмес келишет, же алар жалпы келбей калышат. Файлды жазганда, бизге бөлүнгөн орун катуу дискте бүтүп калгандыгы аныкталат, жана файл жазылбай калат. Файлды окуганда, мындай файл жок экени чыгып, биз окуй турган жерден окуй албай калабыз. Принтерде маалыматты басып чыгарганда, принтерди компьютерге туташтырган кабель үзүлүп калат.
Сүрөттөлгөн учурлардын баарынын жалпы маңызы бар: белгиленген операцияны аяктоону мүмкүн эмес же маанисиз кылуучу бир кандай ишке кирбөө болуп жатат.
Ошондой эле ишке кирбөө эмес кырдаалдар да болот. Мисалы, сиз колдонуучудан анын email'ин сурасаңыз, ал email'ти туура эмес форматта киргизет. Биздин программабыз email'ти иштете берүү мүмкүн эмес, анткени ал туура эмес. Бирок, бул кокустуктуу учур эмес. Биздин программа өзү кырдаалды оңдошон мүмкүн: ал ката жөнүндө билдирүү чыгарып, колдонуучу өз киргизүүсүн кайталашы мүмкүн.
Чындыгында ишке кирбөө менен ишке кирбегендин ортосундагы айырма өтө так эмес. Бир программа кокустуктуу учур деп тапкан окуяны, экинчи программа өзү көтөрө алган ката деп танышы мүмкүн.
Бул жерде критерий төмөнкүдөй: эгерде көйгөй чыкканда программаңыз ал керектүү иштерин аткара берсе, анда бул кокустуктуу учур эмес, ал эми аткарбаса – ооба, бул кокустун.
Мисалы, бизде колдонуучунун email'ин суроочу программа бар деп коёлу. Эгерде колдонуучу email'ти туура эмес форматта киргизсе – бул ишке кирбөө эмес. Бул күтүлгөн көйгөй жана биздин программа колдонуучу email'ти туура киргизгене чейин канча жолу болбосун сурашы мүмкүн.
Email'ин суроочу программабыз ошол эле учурда туура email'ти интернет аркылуу жөнөтүшү керек деп коёлу. Бул учурда интернет иштебейт экени чыкты. Мына бул көйгөй: эгерде интернет иштебесе, программа интернет аркылуу маалыматтарды жөнөтө албайт. Бирок, программа аткарылышын уланта алат: ал көйгөй жөнүндө маалымат чыгарышы, бир аз убакыттан кийин жөнөтүүнү кайталашы, жана башкаларды жасашы мүмкүн. Бирок бул иш-аракеттер программанын негизги милдети болгон email жөнөтүүнү аткара албагандыктан, так ошол үчүн эмес.
Ошентип, кандай аракетти кадимки деп эсептөө, кайсынысы кокустуктуу деп эсептөө көбүнчө программачынын алдында турган милдеттерге көз каранды.