Python'da Hata Yönetimi: try, except ve finally Nasıl Çalışır
Python'da bir programın çökmesi yerine hatayı kontrol altına almak istiyorsan, try-except-finally yapısı tam sana lazım. Kullanıcı yanlış veri girerse, dosya bulunamazsa ya da ağ bağlantısı kopsa, programın çökmek yerine sen ne yapacağını söyleyebilirsin.
Try bloğuna "riskli" kodunu koyarsın. Except bloğu o kodda bir hata oluşursa devreye girer ve sorunu ele alır. Finally bloğu ise hata olsun ya da olmasın, mutlaka çalışması gereken kodu tutar, örneğin dosya kapatmak gibi.
Basit bir örnek:
1try:2sayi = int(input("Bir sayı gir: "))3sonuc = 10 / sayi4print(f"Sonuç: {sonuc}")5except ValueError:6print("Hata: Bir sayı girmelisin.")7except ZeroDivisionError:8print("Hata: Sıfıra bölemezsin.")9finally:10print("İşlem tamamlandı.")Kullanıcı "abc" yazarsa ValueError yakalanır. Sıfır girerse ZeroDivisionError yakalanır. Her iki durumda da finally bloğu çalışır.
Dosya işlemlerinde finally özellikle önemlidir:
1try:2dosya = open("veri.txt", "r")3icerik = dosya.read()4print(icerik)5except FileNotFoundError:6print("Dosya bulunamadı.")7finally:8dosya.close()Dosya açılmış olsa da olmasa da, finally bloğu çalışır ve dosya kapatılır. Böylece kaynak sızıntısı önlenir.
Bir hatayı yakalayıp ayrıntılarını görmek istersen `as` anahtar sözcüğünü kullan:
1try:2x = 1 / 03except ZeroDivisionError as e:4print(f"Hata mesajı: {e}")Hata yönetimi, kullanıcı dostu uygulamalar yazmanın temellerinden biri. Programın çökmek yerine sorunla başa çıkması, güvenilirliği artırır. Orijinal makale'de daha detaylı örnekler bulabilirsin.
0 yorum