raise
- Python kursu
- Başlangıç
- Ders 102/116
- 4 dk
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 ageBu 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
# negatif yaş değerini ata
# raise ValueError ile fırlat
# try/except ile yakala ve mesaj yazÖrnek çözüm
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
if age < 0:
____("Geçersiz yaş")
if age < 0:
raise ValueError("Geçersiz yaş")
Açıklama: raise ValueError("mesaj") bir ValueError fırlatır.