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:
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:
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:
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:
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
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:
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:
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:
x = "salom"
if not type(x) is int:
raise TypeError("Faqat butun sonlar ruxsat etiladi")