CodeBlanks Logo Icon CodeBlanks

raise

raise ile istisna fırlatmayı öğrenirsin.

raise ile hata fırlat

raise anahtar sözcüğü bir hata fırlatır. Bunu, geçersiz bir durumAlgıladığında programı durdurmak için kullanırsın:

age = -5
if age < 0:
    raise ValueError("Geçersiz yaş")

Burada negatif yaş bir hatadır; raise ValueError ile program durur ve hata mesajı gösterilir. Hatayı fırlatan kod raise, yakalayan kod try/except'tir.

Bu, fonksiyonların geçersiz girdiyi bildirmesinin standart yoludur.

Ne zaman raise kullanılır

raise iki yaygın durumda kullanılır. Birincisi, fonksiyona geçersiz bağımsız değişken verildiğinde. İkincisi, bir önkoşul sağlanmadığında:

def set_age(age):
    if age < 0:
        raise ValueError("Negatif yaş")
    return age

Bu fonksiyon negatif bir yaş aldığında ValueError fırlatır. Çağıran kod bu hatayı try/except ile yakalayabilir. Aksi halde program durur.

Bu, savunmacı programlama (defensive programming) için temel bir araçtır.

Uygulama Negatif yaşta ValueError fırlat

age = -5 ata. if age < 0: bloğu içinde raise ValueError("Geçersiz yaş") yaz. Hemen altına print("yaş: " + str(age)) yaz. Hata yakalandığında Geçersiz yaş yazsın diye try/except ValueError içine al ve except bloğunda print("Geçersiz yaş") yaz.

Başlangıç kodu

main.py
# negatif yaş değerini ata
# raise ValueError ile fırlat
# try/except ile yakala ve mesaj yaz

Örnek çözüm

main.py
try:
    age = -5
    if age < 0:
        raise ValueError("Geçersiz yaş")
except ValueError:
    print("Geçersiz yaş")

Beklenen çıktı

Geçersiz yaş

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 raise kavramlarını eşleştir

Kavram Anlamı
raise Hata fırlatır
ValueError Hata türü
if age < 0 Koşul
"Geçersiz yaş" Hata mesajı

2 Hangisi raise ile fırlatılabilir?

  • Yalnızca ValueError
  • Sadece dize
  • Yalnızca TypeError
  • Exception alt sınıfları Doğru cevap

Açıklama: raise ile Exception'ın herhangi bir alt sınıfı fırlatılabilir.

3 raise çağrısını tamamla

Soru
if age < 0:
    ____("Geçersiz yaş")
Cevap
if age < 0:
    raise ValueError("Geçersiz yaş")

Açıklama: raise ValueError("mesaj") bir ValueError fırlatır.

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