Trending News
By using our website, you agree to the use of our cookies.

Gönderiler

14. Python Hata Yakalama ve Try-Except Yapısı
Python

14. Python Hata Yakalama ve Try-Except Yapısı 

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:

  • try bloğundaki kodda hata çıkmazsa except bloğu çalışmaz.
  • Ancak hata çıkarsa, except bloğ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:

  • try bloğu içinde hata çıkabilecek kodlar yazılır.
  • except ile hatalar kontrol altına alınır.
  • else bloğu sadece hata olmadığında çalışır.
  • finally bloğu her durumda çalışır.
  • raise ile özel hata fırlatılabilir.

Bu yapı sayesinde programlar daha sağlam, kullanıcı dostu ve kontrol edilebilir olur.

İlgili yazılar

Bir yanıt yazın

Zorunlu alanlar işaretlenir *