Çoklu except
- Python kursu
- Orta seviye
- Ders 82/116
- 5 dk
Birden çok except bloğunu öğrenirsin.
Çoklu except blokları
Bazı işlemler farklı türden hatalar fırlatabilir. Tek bir try bloğunun altına birden çok except yazabilirsin; Python oluşan hatanın türüne göre ilk eşleşeni seçer.
Örneğin int("abc") çağrısı ValueError, sıfıra bölme ZeroDivisionError fırlatır. Her birini ayrı except bloğuyla yakalayabilir, her duruma özel mesaj gösterebilirsin. Eşleşmeyen hata türü yakalanmaz ve yukarıya yayılır.
Eşleşme sırası
except blokları yukarıdan aşağı sırayla değerlendirilir. Daha genel olanı (örneğin Exception) en sona yazmalısın; yokse daha özelleşmiş türler hiç yakalanmaz. Çünkü Exception neredeyse tüm hataları kapsar.
Doğru sıra: önce özelleşmiş türler (ValueError, TypeError), sonra Exception. Bu sırayı bozarsan Python yine de çalışır ama belirli hata türleri için doğru mesaj gösterilmez; her zaman genel blok çalışır.
Uygulama İki except bloğu yaz
Bir try bloğu içinde value = int("abc") çağrısı yap. Altına iki except bloğu ekle: birincisi except ValueError: içine print("Değer hatası"), ikincisi except ZeroDivisionError: içine print("Sıfıra bölme hatası"). int("abc") çağrısı ValueError fırlatır; bu yüzden ilk blok çalışır.
Başlangıç kodu
# try bloğu içinde bir sayı dönüştürmesi dene
# ValueError ve ZeroDivisionError için iki except yazÖrnek çözüm
# try bloğu içinde int("abc") çağır
try:
value = int("abc")
# ValueError ve ZeroDivisionError için iki except yaz
except ValueError:
print("Değer hatası")
except ZeroDivisionError:
print("Sıfıra bölme hatası")Beklenen çıktı
Değer hatası
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir try bloğunda birden çok except varsa ne olur?
- Hata fırlatılır
- İlk eşleşen except çalışır, diğerleri atlanır Doğru cevap
- Yalnızca son except çalışır
- Tümü arka arkaya çalışır
Açıklama: Seçim yanlış. Doğru cevap: ilk eşleşen except çalışır, diğerleri atlanır. Python yukarıdan aşağı eşleşen ilk bloğu seçer.
2 except bloğunu tamamla
try:
value = int("abc")
____ ValueError:
print("Değer hatası")
try:
value = int("abc")
except ValueError:
print("Değer hatası")
Açıklama: except anahtar sözcüğü hata yakalamayı başlatır.
3 İstisna türlerini eşleştir
| Kavram | Anlamı |
|---|---|
ValueError |
Geçersiz değer |
TypeError |
Yanlış tür |
ZeroDivisionError |
Sıfıra bölme |
KeyError |
Anahtar yok |