Python programlama dilinde hata (exception) yakalama, kodun beklenmedik durumlarda çökmesini engellemek için kullanılan bir yöntemdir. Bu sistem sayesinde program çalışırken oluşabilecek hatalar “yakalanır” ve uygun şekilde yönetilir.
Neden Hata Yakalama?
Bir program kullanıcıdan veri alabilir, dosya okuyabilir veya ağ üzerinden işlem yapabilir. Bu tür durumlar sırasında hata oluşabilir:
- Kullanıcı sayısal değer yerine harf girerse,
- Okunmaya çalışılan dosya yoksa,
- Bir sayı sıfıra bölünmeye çalışılırsa,
Bu gibi durumlarda program doğrudan çöker. Ancak try-except yapısı kullanılarak bu tür hatalar “yakalanabilir” ve program güvenli şekilde devam ettirilebilir.
Try-Except Temel Kullanımı
try:
# Hata çıkabilecek kod buraya yazılır
sayi = int(input("Bir sayı girin: "))
sonuc = 10 / sayi
print("Sonuç:", sonuc)
except:
# Hata oluştuğunda burası çalışır
print("Bir hata oluştu!")
Açıklama:
trybloğundaki kodda hata çıkmazsaexceptbloğu çalışmaz.- Ancak hata çıkarsa,
exceptbloğu devreye girer.
Belirli Hataları Yakalama
Python’da her hata türü için özel bir exception sınıfı vardır. Bunları belirterek sadece belli türdeki hataları yakalayabilirsiniz:
try:
sayi = int(input("Bir sayı girin: "))
sonuc = 10 / sayi
except ZeroDivisionError:
print("Sıfıra bölme hatası!")
except ValueError:
print("Geçersiz giriş! Lütfen sayı girin.")
Tüm Hataları Görmek (Hata mesajını yazdırmak)
try:
dosya = open("olmayan_dosya.txt")
except Exception as e:
print("Bir hata oluştu:", e)
Burada Exception as e ifadesi sayesinde hata mesajı detaylı şekilde yazdırılır.
Else ve Finally Blokları
else bloğu, try bloğunda hiçbir hata oluşmadığında çalışır.
finally bloğu ise hata olsa da olmasa da her durumda çalışır.
try:
sayi = int(input("Bir sayı girin: "))
except ValueError:
print("Geçersiz sayı girdiniz.")
else:
print("Girdiğiniz sayı:", sayi)
finally:
print("İşlem tamamlandı.")
Kendi Hatalarını Fırlatmak (raise)
Programcı kendi özel durumlarında hata fırlatabilir:
def pozitif_sayi(sayi):
if sayi < 0:
raise ValueError("Negatif sayı girilemez!")
return sayi
try:
pozitif_sayi(-5)
except ValueError as hata:
print("Hata mesajı:", hata)
Özet:
trybloğu içinde hata çıkabilecek kodlar yazılır.exceptile hatalar kontrol altına alınır.elsebloğu sadece hata olmadığında çalışır.finallybloğu her durumda çalışır.raiseile özel hata fırlatılabilir.
Bu yapı sayesinde programlar daha sağlam, kullanıcı dostu ve kontrol edilebilir olur.








