Python Hata Yönetimi ve Özel Hata Sınıfları
1. Hata Yönetimi
Python'da hata yönetimi, try, except, ve finally blokları kullanılarak gerçekleştirilir. Bu yapılar, hata oluşumunda programın nasıl davranacağını kontrol etmenizi sağlar.
try Bloku
Potansiyel olarak hata oluşturabilecek kodları içeren bloktur. Hata oluştuğunda, bu blokta bir except bloğu varsa, program bu bloğa geçer.
python
try:
result = 10 / 0
except ZeroDivisionError:
print("Sıfıra bölme hatası!")
except Bloku
Hata oluştuğunda, try bloğunda yakalanan hata türüne göre bu blok çalışır. Birden fazla except bloğu tanımlanabilir ve farklı hata türlerini işleyebilir.
python
try:
result = int("not a number")
except ValueError:
print("Geçersiz değer hatası!")
except ZeroDivisionError:
print("Sıfıra bölme hatası!")
finally Bloku
Hata oluşsa da oluşmasa da, try bloğu tamamlandıktan sonra bu blok çalışır. Genellikle kaynakları serbest bırakmak veya temizlik işlemleri için kullanılır.
python
try:
file = open("example.txt", "r")
content = file.read()
finally:
file.close()
print("Dosya kapatıldı.")
2. Özel Hata Sınıfları ve Hata Mesajları
Python'da kendi hata sınıflarınızı oluşturabilir ve özel hata mesajları tanımlayabilirsiniz. Bu, hata yönetimini daha özelleştirilmiş ve anlaşılır hale getirebilir.
Özel Hata Sınıfı Tanımlama
Özel bir hata sınıfı oluşturmak için, Exception sınıfını miras alarak yeni bir sınıf tanımlayabilirsiniz.
python
class CustomError(Exception):
def __init__(self, message):
self.message = message
super().__init__(self.message)
Özel Hata Sınıfını Kullanma
Özel hata sınıfını raise anahtar kelimesi ile yükseltebilir ve try ve except bloklarında yakalayabilirsiniz.
python
try:
raise CustomError("Bu özel bir hata mesajıdır.")
except CustomError as e:
print(f"Özel hata yakalandı: {e}")