
Ders 15: Python Hata Yakalama (Exception Handling)
Kod yazarken hatalar kaçınılmazdır ama Python hata yakalama mekanizması sayesinde bu hataları kontrol altına alabiliriz. Python hata yakalama, programın çökmesini engelleyip kullanıcıya daha anlamlı mesajlar vermemizi sağlar.
Python Hata Yakalama Nedir?
Python hata yakalama, programın çalışma anında oluşabilecek hataları (örneğin sıfıra bölme, yanlış veri tipi kullanımı) önceden tahmin edip kontrol etmeye yarar. Bunun için en temel yapı try ve except bloklarıdır.
try:
sayi = int(input("Bir sayı girin: "))
sonuc = 10 / sayi
print("Sonuç:", sonuc)
except:
print("Bir hata oluştu!")
Bu örnekte kullanıcı sıfır girerse veya sayı yerine metin yazarsa program çökmek yerine uyarı verir.
Python Hata Yakalama: try-except-else-finally Kullanımı
Python hata yakalama süreci sadece try ve except’ten ibaret değildir. else ve finally blokları da daha kontrollü hata yönetimi sağlar.
try:
dosya = open("veri.txt", "r")
icerik = dosya.read()
except FileNotFoundError:
print("Dosya bulunamadı!")
else:
print("Dosya başarıyla okundu!")
finally:
print("İşlem tamamlandı.")
try: Hata olabilecek kodlar buraya yazılır. except: Hata olursa burası çalışır. else: Hata olmazsa burası çalışır. finally: Her durumda çalışır, genellikle temizlik (ör. dosya kapatma) işlemleri için kullanılır.
Python Hata Yakalama: Belirli Hata Türleri
Python hata yakalama yaparken genel bir except bloğu yerine belirli hata türlerini yakalamak daha profesyoneldir:
try:
x = int("merhaba")
except ValueError:
print("Geçersiz sayı girişi!")
except ZeroDivisionError:
print("Sıfıra bölme hatası!")
Python Hata Yakalama: raise ile Kendi Hatanı Fırlatmak
Python hata yakalama sadece mevcut hataları değil, kendi özel hata mesajlarını oluşturmayı da sağlar. Bunun için raise kullanılır.
def kontrol_et(yas):
if yas < 0:
raise ValueError("Yaş negatif olamaz!")
else:
print("Yaş geçerli:", yas)
kontrol_et(-5)
Bu kodda raise ifadesiyle kendi hata türümüzü oluşturduk. Program, yaş negatif olduğunda özel bir hata mesajı üretir.
Küçük Görevler
- Kullanıcıdan iki sayı al, bölme işlemi yap ve sıfıra bölme hatasını yakala.
- Bir dosya okumaya çalış, dosya yoksa “Dosya bulunamadı” mesajı ver.
- Yaşı negatif girilirse özel hata fırlatan bir fonksiyon oluştur.
Bir önceki Ders 14: Python Fonksiyonlar İleri Seviye — Bir sonraki Ders 16: Python Dosya İşlemleri
