⊗pyPmExcCt 75 of 129 menu

Pythonda istisnolarni ushlash

Python boshqa dasturlash tillariga nisbatan juda ko'p istisno vaziyatlarini keltirib chiqaradi.

Keling, ularni batafsil ko'rib chiqaylik. Faraz qilaylik, bizda quyidagi ro'yxat mavjud:

lst = [1, 2, 3]

Keling, ro'yxatda mavjud bo'lmagan elementga murojaat qilaylik:

print(lts[4])

Kod bajarilgandan so'ng xato (istisno) chiqadi:

IndexError: list index out of range

Agar bizga istisnoni chiqarmasdan ishni davom ettirish kerak bo'lsa, uni try-except konstruksiyasi yordamida ushlash kerak. U quyidagi sintaksisga ega:

try: # istisno keltirib chiqaradigan kod except: # xatoni qayta ishlash

try blokida istisno o'z ichiga olgan kod joylashishi kerak. Agar ushbu kodni bajarish paytida istisno vaziyati yuzaga kelsa, kod bajarilishi to'xtamaydi, balki except blokidagi kodga o'tadi. Ushbu blokda yuzaga kelgan xatoning mohiyatini iloji boricha aniq tavsiflovchi xabar chiqarish belgilanishi kerak.

Agar try blokini bajarish paytida hech qanday istisno vaziyati yuzaga kelmasa, foydali kod shunchaki bajariladi va except blokidagi kod bajarilmaydi.

Keling, ro'yxatda mavjud bo'lmagan elementga murojaat qilishda yuzaga keladigan istisnomizni ushlaymiz. Buning uchun try blokiga potensial xatoli kodni joylashtiramiz. except blokida esa 'error: elem is not exist' xabarini konsolga chiqarishni ko'rsatamiz:

lst = [1, 2, 3] try: print(lst[4]) except: print('error: elem is not exist')

Kod bajarilgandan so'ng chiqadi:

'error: elem is not exist'

try-except konstruksiyasini o'rganganingizdan so'ng, siz yozgan kodning uslubi o'zgarishi kerak. Endi istisno vaziyati yuzaga kelishi mumkin bo'lgan barcha joylar try ichiga o'ralishi kerak, except blokida esa ushbu istisnoga reaktsiya belgilanishi kerak.

Foydalanuvchidan ikkita raqam so'rang. Bittasini ikkinchisiga bo'ling. Nolga bo'lish istisno vaziyatini ushlang.

Foydalanuvchidan raqam so'rang. Ushbu raqamning ildizini toping. Manfiy sondan ildiz olish istisno vaziyatini ushlang.

Ro'yxat berilgan. Foydalanuvchidan butun son so'rang. Foydalanuvchi kiritgan raqamdagi ro'yxat elementini oling. Foydalanuvchi ro'yxat diapazonidan tashqaridagi raqamni kiritganida yuzaga keladigan istisno vaziyatini ushlang.

Quyidagi kod berilgan:

num = '5' res = num + 2 print(res)

Ushbu kodda nima noto'g'ri? Uning kamchiliklarini tuzating.

Quyidagi kod berilgan:

lst = [1, 2, 3, 4] def getElem(iter): print(iter[4]) getElem(lst)

Ushbu kodda nima noto'g'ri? Uning kamchiliklarini tuzating.

Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish