Skip to content

Python - Sinov va Istisno

Sinov va Istisno

try bloki sizga kod blokini xatolarga sinab ko'rish imkonini beradi.

except bloki sizga xatoni boshqarish imkonini beradi.

else bloki xato bo'lmaganida kodni bajarish imkonini beradi.

finally bloki try va except bloklari natijasidan qat'i nazar kodni bajarish imkonini beradi.

Istisno Boshqaruvi

Xato yuz berganda yoki biz uni istisno deb atasak, Python odatda to'xtaydi va xato xabarini chiqaradi.

Bu istisnolarni try iborasi yordamida boshqarish mumkin:

Misol

try bloki istisno keltirib chiqaradi, chunki x aniqlanmagan:

python
try:
    print(x)
except:
    print("Bir istisno yuz berdi")

try bloki xato keltirib chiqarganligi sababli, except bloki bajariladi.

try bloki bo'lmasa, dastur ishdan chiqadi va xato keltirib chiqaradi:

Misol

Bu ibora xato keltirib chiqaradi, chunki x aniqlanmagan:

python
print(x)

Ko'p Istisno

Siz xohlagancha istisno bloklarini aniqlashingiz mumkin, masalan, agar ma'lum bir xato turi uchun maxsus kod blokini bajarmoqchi bo'lsangiz:

Misol

Agar try bloki NameError keltirib chiqarsa, bir xabar chop eting, boshqa xatolar uchun boshqa xabar:

python
try:
    print(x)
except NameError:
    print("x o'zgaruvchisi aniqlanmagan")
except:
    print("Boshqa biror narsa noto'g'ri ketdi")

Else

Agar xato keltirib chiqarilmagan bo'lsa, bajariladigan kod blokini aniqlash uchun else kalit so'zidan foydalanishingiz mumkin:

Misol

Bu misolda try bloki hech qanday xato keltirib chiqarmaydi:

python
try:
    print("Salom")
except:
    print("Nimadir noto'g'ri ketdi")
else:
    print("Hech qanday xato yo'q")

Finally

Agar ko'rsatilgan bo'lsa, finally bloki try bloki xato keltirib chiqaradimi yoki yo'qmi, qat'i nazar bajariladi.

Misol

python
try:
    print(x)
except:
    print("Nimadir noto'g'ri ketdi")
finally:
    print("'try except' tugadi")

Bu obyektlarni yopish va resurslarni tozalash uchun foydali bo'lishi mumkin:

Misol

Yozish mumkin bo'lmagan faylni ochishga va unga yozishga urinib ko'ring:

python
try:
    f = open("demofile.txt")
    try:
        f.write("Lorum Ipsum")
    except:
        print("Faylga yozishda nimadir noto'g'ri ketdi")
    finally:
        f.close()
except:
    print("Faylni ochishda nimadir noto'g'ri ketdi")

Dastur fayl obyektini ochiq qoldirmasdan davom etishi mumkin.

Istisno Keltirib Chiqarish

Python dasturchisi sifatida siz shart yuz berganda istisno keltirib chiqarishni tanlashingiz mumkin.

Istisno keltirib chiqarish (yoki ko'tarish) uchun raise kalit so'zidan foydalaning.

Misol

Agar x 0 dan kichik bo'lsa, xato keltirib chiqaring va dasturni to'xtating:

python
x = -1

if x < 0:
    raise Exception("Kechirasiz, nol ostidagi raqamlar qo'llab-quvvatlanmaydi")

raise kalit so'zi istisno keltirib chiqarish uchun ishlatiladi.

Siz qanday xato turini keltirib chiqarishni va foydalanuvchiga chop etiladigan matnni aniqlashingiz mumkin.

Misol

Agar x butun son bo'lmasa, TypeError keltirib chiqaring:

python
x = "salom"

if not type(x) is int:
    raise TypeError("Faqat butun sonlar ruxsat etiladi")