Мазмунга өтүү

Өзгөчө кырдаалдар тереңинен

Сабактын башталышы

Өзгөчө кырдаалдар тереңинен

Каталарды башкарылуучу жана калыбына келтирилүүчү окуяларга айландырыңыз

Негизги идея: өзгөчө кырдаал (exception) — бул Python бир нерсе туура эмес болгонун чакыруу стеги боюнча жогору көтөрүлүүчү маани катары билдирүү ыкмасы. Ката коддорун кайтарып, аларды кол менен текшергендин ордуна, сиз каталыкка кадимки жүрүшүн үзүүгө уруксат берип, анан аны кармап аласыз — так пайдалуу иш кыла ала турган жерде. try/except менен башталгыч курста тааныштыңыз; бул жерде толук жашоо циклин үйрөнөсүз: try, except, else, finally, raise аркылуу катаны атайын чакыруу, өз өзгөчө кырдаал түрлөрүн долбоорлоо жана бир каталыкты экинчисине байлоо.
Аягында сиз буларды кыла аласыз:
  • төрт блокту тең — try, except, else, finally — колдонуп, ар биринин милдетин түшүндүрө аласыз,
  • өзгөчө кырдаалдын конкреттүү түрлөрүн кармай аласыз (жана бош except: эмне үчүн тузак экенин билесиз),
  • raise аркылуу өзгөчө кырдаалдарды атайын чакыра аласыз, кайра чакырууну кошо,
  • Exceptionдан мурас алуу менен өз өзгөчө кырдаалдарыңызды долбоорлой аласыз,
  • өзгөчө кырдаалдарды байлоо (raise ... from ...) аркылуу баштапкы себепти сактай аласыз.

1. Толук анатомия: try / except / else / finally

Толук өзгөчө кырдаал иштеткич эң көбү төрт бөлүктөн турат. Милдеттүү болгону — try жана эң аз дегенде бир except (же finally); else менен finally милдеттүү эмес, бирок абдан пайдалуу.

try:
    # 1. коркунучтуу иш
    value = int(user_input)
except ValueError:
    # 2. ТОЛЬКО try ичинде дал келген өзгөчө кырдаал чыкса иштейт
    print("That was not a whole number.")
else:
    # 3. ТОЛЬКО try өзгөчө кырдаалсыз бүткөндө иштейт
    print("You entered", value)
finally:
    # 4. ДАЙЫМА иштейт — ийгилик, каталык, атүгүл return болсо да
    print("Done validating.")

Көпчүлүк адамдар байкабай кала турган негизги айырма — else менен жөн эле tryдын аягына код кошуунун ортосунда:

  • try ичинде каталыкка учурай турган саптар гана болушу керек. Аны кыска кармаңыз, ошондо except так эмнени кармап жатканын билесиз.
  • except бир түрдөгү каталыкты иштетет. Алар бир нечоо болушу мүмкүн, жогорудан төмөн текшерилет; биринчи дал келгени жеңет.
  • else «баары иштеди» деген кийинки аракеттерди камтыйт. Ал try ийгиликтүү болгондо гана иштегендиктен, бул жерде чыккан өзгөчө кырдаал жогорудагы except тарабынан кармалбайт — мунун бүт мааниси ушунда.
  • finally кандай жыйынтык болсо да аткарылышы керек болгон тазалоо үчүн: файлдарды жабуу, кулпуларды бошотуу, абалды калыбына келтирүү. Ал try ичинен return кылсаңыз да иштейт.

Бул сабакты YourAIZone платформасында улантыңыз

Толук сабакта — толук түшүндүрмө, чыгарылган мисалдар, көп кездешкен каталар, заматта текшерилүүчү тесттер жана ЖИ-репетитор. Конок катары дароо баштаңыз же прогрессти сактоо үчүн аккаунт түзүңүз.

Толук сабакта

  • Толук түшүндүрмө
  • Чыгарылган мисалдар
  • Көп кездешкен каталар жана алардан кантип качуу керек
  • Тест суроолору: 15
  • Тема боюнча суроолорго жооп берген ЖИ-репетитор
  • Окуучу, ата-эне жана мугалим үчүн прогрессти көзөмөлдөө