Özel istisna
- Python kursu
- Başlangıç
- Ders 104/116
- 5 dk
class MyError(Exception) ile özel istisna yazmayı öğrenirsin.
Özel istisna sınıfı
Kendi hatanı tanımlamak için Exception'dan alt sınıf türetirsin:
class StokError(Exception):
pass
raise StokError("stok bitti")Burada StokError adında yeni bir hata türü oluşturulur. pass gövdesi onu Exception'ın tüm davranışını devralmasını sağlar. Artık raise StokError(...) ile fırlatılır ve except StokError ile yakalanır.
Bu, iş mantığına özgü hataları net biçimde bildirmeyi sağlar.
Özel istisna fırlatma ve yakalama
Özel istisnanı raise ile fırlatır, except ile yakalarsın — tıpkı yerleşik hatalar gibi:
class StokError(Exception):
pass
try:
raise StokError("stok bitti")
except StokError as e:
print(e) # stok bittiBurada as e ile hata mesajına erişirsin. Özel istisnalar, çağıran kodun hatayı türüne göre ayırt etmesini sağlar.
Büyük projelerde her modül kendi istisna sınıfını tanımlar.
Uygulama StokError tanımla ve yakala
class StokError(Exception): tanımla, gövdesinde pass yaz. try: bloğu içinde raise StokError("stok bitti") yaz. except StokError as e: bloğu içinde print(e) yaz.
Başlangıç kodu
# StokError sınıfını Exception'dan türet
# raise ile fırlat, except ile yakalaÖrnek çözüm
class StokError(Exception):
pass
try:
raise StokError("stok bitti")
except StokError as e:
print(e)Beklenen çıktı
stok bitti
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Özel istisna tanımını tamamla
class StokError(____):
pass
class StokError(Exception):
pass
Açıklama: Özel istisnalar Exception'dan türetilir.
2 Özel istisna hangi sınıftan türetilir?
- BaseException
- Exception Doğru cevap
- object
- Error
Açıklama: Özel istisnalar Exception'dan türetilir; böylece except Exception onları yakalar.
3 Özel istisna eşleştir
| Kavram | Anlamı |
|---|---|
class StokError(Exception) |
Özel istisna |
pass |
Boş gövde |
raise StokError |
Fırlatma |
except StokError as e |
Yakalama |