Hata yönetimi
- Python kursu
- Başlangıç
- Ders 22/116
- 6 dk
try/except ile geçersiz girdileri yakalarsın.
try/except ile hata yakalama
Bu derste try/except yapısını taniyacagiz. Bu yapı bir hatayı yakalayıp programın çökmesini engeller:
try:
result = 10 / 0
except ZeroDivisionError:
result = 0try bloğundaki kod hata verirse, Python except bloğuna atlar. Hata türü ZeroDivisionError ile eşleşirse o blok çalışır.
try/except'in ayrıntısını ayrı bir grupta göreceğiz. Burada bölme hatasını güvenle yakalamak için kullanacağız.
Güvenli bölme
Şimdi divide fonksiyonunu try/except ile güvenli hale getireceğiz. Eğer bölen sıfırsa hatayı yakalayıp 0 dondurecegiz:
def divide(x, y):
try:
return x / y
except ZeroDivisionError:
return 0Bu yöntem if kontrolünden daha Pythonic sayılır: hatayı önceden kontrol etmek yerine, olusmasina izin verip yakalamak.
Bu yaklaşım "af dilemek izin istemekten daha kolay" felsefesine uyar.
Uygulama Güvenli divide ekle
Önceki fonksiyonlar hazır. divide fonksiyonunu try/except ile yeniden yaz: try: return x / y, except ZeroDivisionError: return 0. Sonra print(divide(a, b)) ve print(divide(a, 0)) yazdır.
Başlangıç kodu
# Hesap makinesi - iki sayi tanımla
a = 10
b = 5
print(a, b)
def add(x, y):
return x + y
def subtract(x, y):
return x - y
def multiply(x, y):
return x * y
print(add(a, b))
print(subtract(a, b))
print(multiply(a, b))
# Guvenli divide fonksiyonunu ekleÖrnek çözüm
def divide(x, y):
try:
return x / y
except ZeroDivisionError:
return 0
print(divide(a, b))
print(divide(a, 0))Beklenen çıktı
10 5 15 5 50 2.0 0
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 except bloğunu tamamla
try:
result = 10 / 0
____ ZeroDivisionError:
result = 0
try:
result = 10 / 0
except ZeroDivisionError:
result = 0
Açıklama: except ile hata türü yakalanır.
2 try bloğunda hata olursa ne olur?
- Program çöker
- Hata görmezden gelinir
- try tekrar çalışır
- except bloğu çalışır Doğru cevap
Açıklama: Hata olursa except bloğu çalışır.
3 Hata yönetimi kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
try |
Denenecek kod |
except |
Hata yakalama |
ZeroDivisionError |
Bölme hatası |
return 0 |
Hata sonrası değer |