13- Hata Yönetimi
Python'da hata yakalama ve yönetimi için kullanılan try-except yapısı bu yazıda ele alınmıştır.
Python’da try-except
bloğu, bir kod parçasını çalıştırırken oluşabilecek hataları yakalamak ve bu hataları kontrol etmek için kullanılır. Programda bir hata meydana geldiğinde, kod normalde çalışmayı durdurur ve bir hata mesajı verir. Ancak, try-except
bloğu ile bu hataları yakalayarak programın çökmesini engelleyebiliriz.
try-except Bloğunun Temel Yapısı
try
: Bu bloğun içine hataya neden olabilecek kodu yazarız.except
: Bu bloğun içine hata meydana geldiğinde çalışmasını istediğimiz kodu yazarız.
1
2
3
4
try:
# Hata oluşabilecek kod
except:
# Hata durumunda çalışacak kod
İsterseniz belirli hata türlerini yakalayarak ona göre işlem yapabilirsiniz. Örneğin ZeroDivisionError
, ValueError
gibi hatalar.
Kod Örnekleri
Örnek 1: Sıfıra Bölme Hatası (ZeroDivisionError)
Bu örnekte, bir sayıyı sıfıra bölmeye çalıştığımızda oluşabilecek hatayı yakalıyoruz.
1
2
3
4
try:
sonuc = 10 / 0
except ZeroDivisionError:
print("Bir sayı sıfıra bölünemez.")
Çıktı:
1
Bir sayı sıfıra bölünemez.
Açıklama: 10 / 0
işlemi bir ZeroDivisionError
hatası oluşturur ve except
bloğuna geçerek kullanıcıya hata mesajı gösterir.
Örnek 2: Geçersiz Tip Hatası (TypeError)
Bu örnekte, farklı tipteki değişkenleri toplarken oluşabilecek bir hatayı yakalıyoruz.
1
2
3
4
try:
sonuc = "5" + 10
except TypeError:
print("Farklı tipteki değişkenler toplanamaz.")
Çıktı:
1
Farklı tipteki değişkenler toplanamaz.
Açıklama: str
ve int
tipindeki değişkenleri toplamak bir TypeError
hatası oluşturur. Bu hatayı yakalayıp, kullanıcılara açıklayıcı bir mesaj gösteriyoruz.
Örnek 3: Belirtilen Dosya Bulunamadığında (FileNotFoundError)
Bir dosya açmaya çalıştığınızda, eğer dosya yoksa bu hatayı yakalayabilirsiniz.
1
2
3
4
try:
dosya = open("olmayan_dosya.txt", "r")
except FileNotFoundError:
print("Dosya bulunamadı.")
Çıktı:
1
Dosya bulunamadı.
Açıklama: Program, belirtilen dosyayı bulamayınca FileNotFoundError
oluşur ve bu hatayı yakalayarak kullanıcıya mesaj gösterir.
Örnek 4: Birden Fazla Hata Türünü Yakalama
Aynı anda birden fazla hata türünü yakalamak istiyorsak, birden fazla except
bloğu kullanabiliriz.
1
2
3
4
5
6
7
try:
sayi = int(input("Bir sayı girin: "))
sonuc = 10 / sayi
except ValueError:
print("Geçerli bir sayı girmelisiniz.")
except ZeroDivisionError:
print("Bir sayı sıfıra bölünemez.")
Olası Çıktılar:
- Eğer kullanıcı harf girerse:
1
Geçerli bir sayı girmelisiniz.
- Eğer kullanıcı sıfır girerse:
1
Bir sayı sıfıra bölünemez.
Açıklama: int()
fonksiyonu geçersiz bir değer girilirse ValueError
, sıfıra bölme işlemi yapılırsa ZeroDivisionError
oluşturur. İki hatayı ayrı ayrı yakalayıp ona göre mesaj veriyoruz.