Kod yazarken hata kaçınılmazdır: kullanıcı yanlış veri girer, dosya bulunamaz, internet kesilir. İyi bir program bu durumlarda çökmek yerine, hatayı zarifçe karşılar. Python’da bunun yolu try/except bloğudur.
Neden hata olur?
Bir metni sayıya çevirmeye çalışmak, olmayan bir dosyayı açmak ya da sıfıra bölmek çalışma zamanı hatalarına yol açar. Bu hatalar yakalanmazsa program aniden durur.
try / except ile yakalamak
Riskli kodu try içine, hata olduğunda yapılacakları except içine yazarsınız:
try:
sayi = int(input("Bir sayı gir: "))
print(100 / sayi)
except ValueError:
print("Bu bir sayı değil.")
except ZeroDivisionError:
print("Sıfıra bölemezsin.")Belirli hataları yakalayın
Her hatayı tek bir “except” ile toplamak yerine, hangi hata türünü beklediğinizi belirtmek daha iyidir. Böylece beklenmedik hataları yanlışlıkla gizlemezsiniz.
finally: her hâlükârda
finally bloğu, hata olsa da olmasa da çalışır; genellikle dosya kapatmak gibi temizlik işleri için kullanılır. Riskli işleri düzenli fonksiyonlar içine almak, hata yönetimini de kolaylaştırır. Kavram için hata yönetimi sayfasına bakabilirsiniz.
İşin hocası ne yapar?
İşin hocası “her şey yolunda gidecek” varsaymaz; nerede ters gidebileceğini düşünür ve programını buna göre sağlamlaştırır.
İlgili yazı: Dosya Okuma ve Yazma
