Hatalar ve Dosyalar
Program çalışırken bir hata olursa durmak zorunda değil: dene / hata_yakala ile hatayı yakalayıp ne yapılacağına sen karar verirsin. Bu sayfada ayrıca dosyalara yazmayı ve dosyadan okumayı öğrenirsin.
| TürKod | Python |
|---|---|
dene |
try |
hata_yakala |
except |
değilse |
else |
sonunda |
finally |
hata_fırlat |
raise |
olarak |
as |
iddia_et |
assert |
Hata yakalama
Bölüm başlığı “Hata yakalama”fonksiyon bol(a, b): dene: sonuc = a / b hata_yakala SıfıraBölmeHatası: yazdır("Sıfıra bölünemez!") değilse: yazdır("Sonuç:", sonuc) sonunda: yazdır("işlem bitti")
bol(10, 2)bol(1, 0)Çıktı:
Sonuç: 5.0işlem bittiSıfıra bölünemez!işlem bittideğilsebloğu yalnızca hata olmazsa çalışır.sonundabloğu her durumda çalışır.- Birden çok hatayı birlikte yakalamak için:
hata_yakala (DizinHatası, AnahtarHatası):
Kullanıcı girdisini güvenle sayıya çevirme
Bölüm başlığı “Kullanıcı girdisini güvenle sayıya çevirme”dene: yas = tamsayı("on iki")hata_yakala DeğerHatası: yazdır("Lütfen rakamla yaz.")Çıktı: Lütfen rakamla yaz.
Kendi hatanı fırlatma
Bölüm başlığı “Kendi hatanı fırlatma”fonksiyon yas_kontrol(yas): eğer yas < 0: hata_fırlat DeğerHatası("Yaş negatif olamaz") döndür yas
dene: yas_kontrol(-5)hata_yakala DeğerHatası olarak hata: yazdır(hata)Çıktı: Yaş negatif olamaz
Hata adları
Bölüm başlığı “Hata adları”| TürKod | Python | Ne zaman? |
|---|---|---|
İstisna |
Exception | her türlü hata |
DeğerHatası |
ValueError | yanlış değer (tamsayı("abc")) |
TürHatası |
TypeError | yanlış tür ("a" + 5) |
DizinHatası |
IndexError | listede olmayan sıra |
AnahtarHatası |
KeyError | sözlükte olmayan anahtar |
İsimHatası |
NameError | tanımsız değişken |
SıfıraBölmeHatası |
ZeroDivisionError | sıfıra bölme |
DosyaBulunamadıHatası |
FileNotFoundError | olmayan dosya |
ÖzellikHatası |
AttributeError | olmayan özellik/metot |
Dosyaya yazma ve okuma
Bölüm başlığı “Dosyaya yazma ve okuma”ile ... olarak dosyayı açar ve iş bitince kendiliğinden kapatır.
| TürKod | Python |
|---|---|
ile |
with |
açık |
open |
kodlama |
encoding |
yaz |
write |
oku |
read |
satırları_oku |
readlines |
ile açık("notlar.txt", "w", kodlama="utf-8") olarak dosya: dosya.yaz("Merhaba\n") dosya.yaz("Dünya\n")
ile açık("notlar.txt", "r", kodlama="utf-8") olarak dosya: için satir içinde dosya: yazdır(satir.kırp())Çıktı:
MerhabaDünyaDosya kipleri: "r" oku, "w" sıfırdan yaz, "a" sonuna ekle.
Mini Görev
Bölüm başlığı “Mini Görev”Kullanıcıdan bir sayı al; sayı değilse DeğerHatası yakalayıp “Geçersiz sayı” yazdır.
