İçeriğe geç

Kitaplar / Yöntem ile Programlamaya Giriş / Bölüm 10 — Hatalarla başa çıkmak

Bölüm 10 — Hatalarla başa çıkmak

Programlar beklenmedik durumlarla karşılaşır: sıfıra bölme, olmayan bir dosya, hatalı girdi. Yöntem bu durumlarda bir hata fırlatır. Hatayı dene … yakala … sonunda … bitir ile yakalayıp programı durdurmadan yönetebilirsiniz.

Yöntem
program HataYönetimi
değişken
  sayılar: liste
  i, bölen: tamsayı

fonksiyon Bölüştür(toplam, kişi: tamsayı): tamsayı
başla
  eğer kişi <= 0 ise
    fırlat Hata('Kişi sayısı pozitif olmalı', 'GeçersizGirdi')
  dön toplam böl kişi
bitir

başla
  sayılar := [10, 20, 30]
  dene
    yaz(sayılar[5], 1)
  yakala (h)
    yaz('Yakalandı: ' + h.mesaj, 1)
  bitir

  [3, 0, -2] içindeki her bölen için
  başla
    dene
      yaz('100 / ' + bölen + ' kişi = ' + Bölüştür(100, bölen), 1)
    yakala (h)
      yaz(h.tür + ': ' + h.mesaj, 1)
    sonunda
      yaz('  (hesap denendi)', 1)
    bitir
  bitir

  İddia(Uzunluk(sayılar) = 3, 'Liste 3 elemanlı olmalı')
  yaz('İddia doğrulandı.', 1)
bitir.
Çıktı
Yakalandı: Liste dizini sınır dışı: 5 (uzunluk 3)
100 / 3 kişi = 33
  (hesap denendi)
GeçersizGirdi: Kişi sayısı pozitif olmalı
  (hesap denendi)
GeçersizGirdi: Kişi sayısı pozitif olmalı
  (hesap denendi)
İddia doğrulandı.
Yapı Görevi
dene … Hata çıkabilecek kodu çevreler
yakala (h) … Hata olursa çalışır. h.mesaj, h.tür, h.satır bilgileri vardır. (h) isteğe bağlıdır.
sonunda … Hata olsa da olmasa da her zaman çalışır; dosya kapatma gibi temizlik işleri için
fırlat Hata(mesaj, tür) Kendi hatanızı fırlatır
İddia(koşul, mesaj) Koşul yanlışsa hata fırlatır; testler için idealdir

Yakalanmayan bir hata programı durdurur ve hangi dosyanın hangi satırında olduğunu yazar. Bu mesajları okumayı alışkanlık haline getirmenizi öneririz: mesajlar, hatanın ne olduğunu ve nerede olduğunu genellikle tam olarak söyler.