Python Uygulama: Hata Yönetimi

Python Uygulama: Hata Yönetimi

Aşağıda, Python'da hata yönetimi (exception handling) kullanarak basit bir uygulama örneği bulacaksınız. Bu uygulama, kullanıcıdan iki sayı girmesini isteyip bu sayıları bölerken, olası hataları yakalayan bir program olacaktır. Bu sayede Python’daki hata yönetiminin nasıl uygulandığını görebilirsiniz.

Problem Tanımı:

  • Kullanıcıdan iki sayı girmesi istenecek.
  • İlk sayı, ikinci sayıya bölünecek.
  • Eğer kullanıcı sayısal olmayan bir değer girerse, bir hata mesajı gösterilecek.
  • Eğer kullanıcı ikinci sayı olarak sıfır girerse, sıfıra bölme hatası yakalanacak.
  • Hatalar yakalanırken programın çökmesi önlenecek ve uygun mesajlar gösterilecek.
  • Her durumda işlem tamamlandığında bir mesaj gösterilecek.

Python Kodu:

def sayi_bolme(): try: # Kullanıcıdan iki sayı girişi alıyoruz sayi1 = float(input("Bölünecek sayıyı girin: ")) sayi2 = float(input("Bölen sayıyı girin: ")) # Sayıları bölme işlemi sonuc = sayi1 / sayi2 except ValueError: # Sayısal olmayan bir değer girildiğinde hata mesajı print("Geçersiz giriş! Lütfen sadece sayısal değerler girin.") except ZeroDivisionError: # Bölme işlemi sırasında sıfıra bölme hatası print("Hata! Bir sayı sıfıra bölünemez.") else: # Eğer bir hata olmazsa sonuç ekrana yazdırılır print(f"Sonuç: {sonuc}") finally: # Her durumda bu mesaj yazdırılır print("İşlem tamamlandı.") # Programın çalıştırılması sayi_bolme()

Adım Adım Açıklama:

  1. try Bloğu:

    • Kullanıcıdan iki sayı alıyoruz (input ile). Giriş verilerini float kullanarak sayısal değerlere dönüştürüyoruz. Bu işlem sırasında hata oluşabilecek durumları yakalamak için try bloğunu kullanıyoruz.
    • Kullanıcıdan alınan sayılar başarılı bir şekilde sayıya dönüştürülürse bölme işlemi yapılır.
  2. except ValueError:

    • Kullanıcı, sayısal olmayan bir veri girdiğinde, örneğin harf ya da özel karakter gibi, Python bu hatayı ValueError olarak yakalar. Bu durumda kullanıcıya "Geçersiz giriş" uyarısı gösterilir.
  3. except ZeroDivisionError:

    • Kullanıcı bölen sayıyı sıfır olarak girerse, bölme işlemi sırasında ZeroDivisionError hatası oluşur. Bu durumda sıfıra bölme hatası kullanıcıya bildirilir.
  4. else Bloğu:

    • Eğer try bloğundaki kodda hiçbir hata oluşmazsa, else bloğu çalışır ve bölme işleminin sonucu ekrana yazdırılır.
  5. finally Bloğu:

    • Hata oluşup oluşmadığına bakılmaksızın her zaman finally bloğu çalışır. Bu blok, genellikle kaynakları temizlemek veya işlem tamamlandığında kullanıcıya bir bildirim yapmak için kullanılır. Bu örnekte "İşlem tamamlandı" mesajını gösteriyoruz.

Örnek Çıktılar:

1. Sayısal Olmayan Değer Girilirse:

Bölünecek sayıyı girin: abc Geçersiz giriş! Lütfen sadece sayısal değerler girin. İşlem tamamlandı.

2. Sıfıra Bölme Durumu:

Bölünecek sayıyı girin: 10 Bölen sayıyı girin: 0 Hata! Bir sayı sıfıra bölünemez. İşlem tamamlandı.

3. Hatasız Bir Giriş:

Bölünecek sayıyı girin: 10 Bölen sayıyı girin: 2 Sonuç: 5.0 İşlem tamamlandı.

Uygulama Özeti:

Bu örnek uygulamada, Python'da hata yönetimi nasıl yapılır sorusuna dair temel bir anlayış kazanmış olduk. Kullanıcıdan alınan verilerde olası hataları (sayısal olmayan giriş ve sıfıra bölme) yakalayıp, kullanıcıya açıklayıcı hata mesajları gösterdik. try, except, else ve finally bloklarının nasıl birlikte çalıştığını bu uygulama sayesinde öğrenmiş olduk.



Yorum Ekle

Üzerine gel