Exception hiyerarşisi
- Python kursu
- Başlangıç
- Ders 103/116
- 5 dk
ValueError, TypeError, KeyError gibi istisnaları öğrenirsin.
Exception hiyerarşisi
Python'da tüm hatalar bir ağaç oluşturur. Kök BaseException'dır; Exception onun alt sınıfıdır. ValueError, TypeError, KeyError gibi yaygın hatalar Exception'ın alt sınıflarıdır:
BaseException
├── Exception
│ ├── ValueError
│ ├── TypeError
│ └── KeyError
└── KeyboardInterruptexcept Exception tüm program hatalarını yakalar ama KeyboardInterrupt gibi sistem hatalarını yakalamaz. Bu, çıplak except:'ten daha güvenlidir.
Hiyerarşiyi bilmek, doğru except bloğu yazmayı sağlar.
Çoklu except blokları
Tek bir try bloğundan sonra birden çok except yazılabilir. Python yukarıdan aşağı okur ve ilk eşleşeni çalıştırır:
try:
value = int("abc")
except ValueError:
print("değer hatası")
except TypeError:
print("tür hatası")
except Exception as e:
print(f"diğer: {e}")as e ile hata nesnesini bir değişkene bağlarsın ve mesajına erişirsin. En genel olanı (Exception) her zaman en sona yaz.
Bu, farklı hata türlerine farklı tepki vermeyi sağlar.
Uygulama Çoklu except ile değer hatası yakala
try bloğu içinde value = int("abc") yaz. except ValueError: bloğu içinde print("değer hatası") yaz. except Exception as e: bloğu içinde print(f"diğer: {e}") yaz.
Başlangıç kodu
# try bloğu aç
# ValueError ve Exception'ı ayrı except ile yakalaÖrnek çözüm
try:
value = int("abc")
except ValueError:
print("değer hatası")
except Exception as e:
print(f"diğer: {e}")Beklenen çıktı
değer hatası
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Hangisi Exception'ın alt sınıfı DEĞİLDİR?
- KeyboardInterrupt Doğru cevap
- TypeError
- KeyError
- ValueError
Açıklama: KeyboardInterrupt BaseException'ın doğrudan alt sınıfıdır, Exception'ın değil.
2 Hiyerarşi eşleştir
| Kavram | Anlamı |
|---|---|
BaseException |
Kök sınıf |
Exception |
Program hataları |
ValueError |
Alt sınıf |
as e |
Hata nesnesini bağlar |
3 except as e kalıbını tamamla
try:
value = int("abc")
____ as e:
print(f"hata: {e}")
try:
value = int("abc")
except Exception as e:
print(f"hata: {e}")
Açıklama: except Exception as e tüm program hatalarını yakalar ve e'ye bağlar.