Python Error Handling
Python dasturlash tilida xatoliklar (errors) va istisnolar (exceptions) ko‘p uchraydi. Ulardan to‘g‘ri foydalanish dastur barqarorligini oshiradi.
1. Error va Exception farqi
- Error – sintaksis yoki tuzilishdagi xato (masalan,
SyntaxError). - Exception – bajarilish vaqtida sodir bo‘ladigan xatolik (masalan,
ZeroDivisionError,ValueError).
2. Asosiy try/except ishlatish
python
try:
x = int(input("Son kiriting: "))
print(10 / x)
except:
print("Xatolik yuz berdi!")3. Maxsus Exception turlari
python
try:
num = int("abc") # ValueError
except ValueError:
print("Son kiritilmadi!")python
try:
result = 10 / 0 # ZeroDivisionError
except ZeroDivisionError:
print("Nolga bo‘lish mumkin emas!")4. Bir nechta except
python
try:
x = int("abc")
y = 10 / x
except ValueError:
print("Noto‘g‘ri son kiritildi.")
except ZeroDivisionError:
print("Nolga bo‘lish mumkin emas.")5. else va finally bloklari
python
try:
x = int(input("Son: "))
result = 10 / x
except ZeroDivisionError:
print("Nolga bo‘lib bo‘lmaydi.")
else:
print("Natija:", result)
finally:
print("Dastur tugadi.")else→ faqat xatolik bo‘lmaganda ishlaydi.finally→ doim ishlaydi (fayl yopish, resurslarni bo‘shatish uchun foydali).
6. Exception obyektidan foydalanish
python
try:
x = 10 / 0
except Exception as e:
print("Xatolik turi:", type(e).__name__)
print("Xabar:", e)7. O‘z xatoligingizni yaratish (raise)
python
def check_age(age):
if age < 18:
raise ValueError("Yosh 18 dan katta bo‘lishi kerak!")
return "Kirish mumkin."
try:
print(check_age(16))
except ValueError as e:
print("Xato:", e)8. Custom Exception klasslari
python
class NegativeNumberError(Exception):
pass
def factorial(n):
if n < 0:
raise NegativeNumberError("Manfiy son uchun factorial aniqlanmagan!")
result = 1
for i in range(1, n+1):
result *= i
return result
try:
print(factorial(-5))
except NegativeNumberError as e:
print("Xato:", e)9. Eng ko‘p ishlatiladigan Exception turlari
ValueErrorTypeErrorZeroDivisionErrorIndexErrorKeyErrorFileNotFoundErrorImportError
10. Amaliy Masalalar
- Foydalanuvchi kiritgan sonni 10 ga bo‘lib,
ZeroDivisionErrorni tuting. - Ro‘yxatdan noto‘g‘ri indeks olishda
IndexErrorni boshqaring. - Fayl ochishda
FileNotFoundErrorni boshqaring. - O‘z xatolik klassingizni yozing va undan foydalaning.
- Exception obyektidan xato nomi va xabarini chop eting.
✅ Xulosa: Error handling — bu dasturingizni ishonchli va professional qilishning muhim qismi.