Pythonda istisnolar bilan ishlash



Yüklə 62,97 Kb.
tarix14.04.2023
ölçüsü62,97 Kb.
#97818
Документ Microsoft Word



Pythonda istisnolar bilan ishlash

Agar kodimizda xatolik yuz bersa yoki istisno holatlar bo’lib qolsa Python bizga xatolik haqida xabar beradi. Bunday istisno holatlar bilan ishlash uchun try va except blokidagi amal bajariladi.



Masalan, biz x degan o’zgaruvchini ekranga chiqarmoqchi bo’lamiz. Lekin unday o’zgaruvchining o’zi yo’q bo’lsa xatolik yuz beradi va dastur ishlamaydi. Shuning uchun biz shunday qilamizki, agar x o’zgaruvchi mavjud bo’lmasa, bu haqida xabar berilsin:

try: print(x)
except:
print("x o'zgaruvchi mavjud emas")

x o'zgaruvchi mavjud emas


except kalit so’zini ishlatganimizda Python istalgan turdagi istisno holat uchun amal qiladi. Ammo biz qaysi turdagi istisno holatini tekshirishni o’zimiz belgilashimiz mumkin. Bunday holatlarning turlari ko’p, biz esa asosiylarini sanab o’tamiz:

NameError – murojaat qilinayotgan obyekt topilmasa, ishga tushadi.

ValueError – o’zgaruvchining qiymati unga mos bo’lmagan turda bo’lsa ishga tushadi. Masalan, biror harfli qiymatni son deb qabul qilmoqchi bo’lsak, shunday bo’ladi.
TypeError - o’zaro nomutanosib qiymatlar bilan amallar bajarilsa ishga tushadi. Masalan harfga son qo’shmoqchi bo’lganimizda.
ZeroDivisionError – Istalgan sonni nolga bo’lish holati bo’lganda ishga tushadi.

Hozir biror sonni nolga bo’lishni tekshiramiz.



Buni shunchaki except bilan ham yoki ZeroDivisionError bilan ta’kidlab ham tekshirish mumkin. Natija bir xil bo’ladi:

try: 5/0
except:
print("nolga bo'lish mumkin emas")

try: 7/0
except ZeroDivisionError:
print("nolga bo'lish mumkin meas")

nolga bo'lish mumkin emas nolga bo'lish mumkin meas

else


else kalit so’zi hech qanday xatolik yuz bermaganda bajariladigan amalni ko’rsatish uchun ishlatiladi:

try: print("Salom")
except:
print("Dasturda xatolik bor") else:
print("Hech qanday xatolik yo'q")

Salom
Hech qanday xatolik yo'q

finally



finally bloki ichida ko’rsatilgan amal xatolik bo’lishi yoki bo’lmasligidan qat’iy nazar bajariladi.

try:
print( x )
except:
print("x mavjud emas")
else:
print("Hech qanday xatolik yo'q") finally:
print("Tekshiruv tugadi")

x mavjud emas Tekshiruv tugadi

Istisno holatini hosil qilish

Dasturchi sifatida o’zimiz ham istisno holatini tuzishimiz mumkin. Buning uchun raise kalit so’zini ishlatamiz. Masalan, biror son agar noldan kichik bo’lsa dasturimiz xatolik haqida xabar berishi kerak bo’lsa:

x = -1

if x < 0:
raise Exception("Manfiy son aniqlandi")

raise kalit so’zi bilan qanday turdagi istisno holati bo’lishini ham o’zimiz belgilashimiz mumkin. Hozir TypeError istisnoli holatini tuzamiz. Bunda agar kiritilgan qiymati butun sonli o’zgaruvchi bo’lmasa xatolik haqida xabar berilsin:




x = "abc"

if type(x) is not int:
raise TypeError("Qiymat butun son bo'lishi kerak")
Yüklə 62,97 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin