CodeBlanks Logo Icon CodeBlanks

Özel istisna

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 bitti

Burada 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

main.py
# StokError sınıfını Exception'dan türet
# raise ile fırlat, except ile yakala

Örnek çözüm

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

Soru
class StokError(____):
    pass
Cevap
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

Başlangıç bölümündeki tüm dersler