CodeBlanks Logo Icon CodeBlanks

Çoklu except

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

main.py
# try bloğu içinde bir sayı dönüştürmesi dene
# ValueError ve ZeroDivisionError için iki except yaz

Örnek çözüm

main.py
# 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

Soru
try:
    value = int("abc")
____ ValueError:
    print("Değer hatası")
Cevap
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

Orta seviye bölümündeki tüm dersler