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}")