152
Tushunarli bo'lishi uchun quyidagi misolni ko'ramiz.
yosh=input(“Yoshingizni kiriting: ”)
yosh=int(yosh)
print(f “Siz {2021-yosh} yilda tug’ilgansiz”)
Yoshingizni kiriting: 36.2
Traceback (most recent call last):
File
"C:/Users/SAMSUNG001/AppData/Local/
Programs/Python/Python38-32/13.py", line
2, in
yosh = int(yosh)
ValueError: invalid literal for int() with
base 10: '36.2'
Yuqoridagi misolning 1-qatorida biz foydalanuvchidan yoshini kiritishni
so'rayabmiz. Navbatdagi qatorda esa foydalanuvchi kiritgan qiymatni int() yordamida
butun songa o'tkazayapmiz. Agar foydalanuvchi yoshini kiritganda, butun emas, o'nlik
son kiritsa bu ValueError xatoligiga olib keladi, va dastur bajarilishdan to'xtaydi.
Keling, yuqoridagi kodni try-except yordamida yozamiz:
yosh=input(“Yoshingizni kiriting: ”)
try:
yosh=int(yosh)
print(f “Siz {2021-yosh} yilda tug’ilgansiz”)
except:
print(“Butun son kiritmadingiz”)
print(“Dastur Tugadi!”)
Yoshingizni kiriting: 32.2
Butun son kiritmadingiz
Dastur Tugadi!
Bu yerda ham dastavval foydalanuvchi yoshini so'radik. int() finksiyasini esa
try badani ichida yozdik, agar foydalanuvchi to'gri qiymat kiritgan bo'lsa kodimiz
foydalanuvchi tug'ilgan yilini hisoblab ko'rsatadi, exception (istisno) yuz berganda esa
"Butun son kiritmadingiz" xabarini konsolga chiqaradi. Lekin dastur bajarilishdan
153
to'xtamaydi, va try-except blokidan keyingi qatorlar ham bajarilaveradi (print("Dastur
Tugadi!")). try-except operatorining afzalliklaridan biri, foydalanuvchiga tushunarsiz
xatolar o'rniga, o'zimiz istagan, tushunarliroq matnni ko'rsatishimiz mumkin.
Shuningdek, kompleks tizimlarda arzimagan xatoni deb dasturimiz to'xtab qolmaydi.
Dostları ilə paylaş: