Python Hata Yakalama
Python'da hataları yakalamak için
try, except ve finally kod bloklarından faydalanırız.
- try, bir kod bloğunu hatalara karşı denetler.
- except, kod bloğundaki bir hata durumunda işlemler yapmayı sağlar.
- finally, try-except sonucu fark etmeksizin işlem hata tespit işlemi sonrasına çalıştırılan kod bloğudur.
Hataları Yakalamak
Normalde uygulamamızda bir hata meydana geldiğinde Python hata mesajı yazdırır ve uygulamayı durdurur.
try kodu ile bir kod bloğunu hatalara karşı denetleme imkanı buluruz.
PYTHON Kodu
try:
print(x)
except:
print("Bir hata oluştu")
Yukarıdaki kod çalıştırıldığı zaman x tanımsız olduğu için uygulamamız hata verecektir. Bu hata içeren kodu
try: bloğu içinde yazdık. Hata verdiği zaman
except: bloğu çalıştırılacak ve oradaki mesaj görüntülenecektir.
Bu haliyle hatayı yakalamış ve ona göre işlem yapmış olduk. Uygulamamız halen çalışıyor. Eğer try-except bloklarını kullanmasaydık hata nedeniyle uygulama sona erecekti.
Birden Fazla Hata Yakalamak
Hatalar farklı farklı nedenlerden dolayı meydana gelebilir. Bu durumda hatanın nedenini tespit etmeye yönelik birden fazla except bloğu yazabiliriz. İstisnalar her zaman farklı bir nedenden kaynaklanan hataları yakalamaya yönelik çalışacaktır.
PYTHON Kodu
try:
print(x)
except NameError:
print("x tanımlanmamış")
except:
print("Başka bir hata meydana geldi")
else
Eğer herhangi bir hata meydana gelmemişse yapılacak işlemler
else kod bloğunda yazılabilir.
PYTHON Kodu
try:
print("Merhaba")
except:
print("Bir şeyler ters gitti")
else:
print("Herhangi bir hata yok")
finally
try bloğunda denetlenen kod hata versin ya da vermesin, finally ile belirtilen blok işlem sonrasında çalıştırılır.
PYTHON Kodu
try:
print(x)
except:
print("Bir hata bulundu")
finally:
print("'try except' sona erdi")
Bu kod özellikle açık dosya ya da bağlantıları kapatmak için büyük kolaylık sağlar.
PYTHON Kodu
try:
f = open("demofile.txt")
f.write("Lorum Ipsum")
except:
print("Dosyaya yazarken hata ile karşılaşıldı")
finally:
f.close()
Bir Hata Verdirmek
Python kodlayıcısı olarak bir durum gerçekleştiğinde uygulamanın hata vermesini isteyebiliriz. Bunun için
raise komutu kullanırız.
PYTHON Kodu
x = -1
if x < 0:
raise Exception("Üzgünüm, sıfırdan küçük olamaz.")
raise komutu sadece Exception değil aynı zamanda hatanın çeşidine yönelik istisnalar da çağırabilir. Örneğin bir tür hatası olduğu biliniyorsa TypeError tercih edilebilir:
PYTHON Kodu
x = "hello"
if not type(x) is int:
raise TypeError("Sadece sayılara izin verilir")