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")