Python Hata Nesnesi Fırlatma
Python’da hatalar genellikle önceden tanımlanmış istisnalarla yönetilir. Ancak, programcılar kendi özel hata nesnelerini de oluşturabilir ve bu hataları belirli durumlar karşısında fırlatabilir. Bu, bir programın belirli koşullar altında nasıl davranacağını kontrol etmek ve hataları daha açıklayıcı hale getirmek için çok yararlıdır. Hata nesnesi fırlatmak için Python'da raise anahtar kelimesi kullanılır.
ile Hata Fırlatma
Bir hata nesnesi fırlatmak için raise anahtar kelimesi kullanılır. Bu, bir hata oluştuğunda o hatanın programın akışını durdurmasını ve bir hata mesajı üretmesini sağlar.
Temel Kullanım
Bir raise ifadesi kullanarak Python’un yerleşik hata türlerinden birini fırlatabiliriz.
raise ValueError("Geçersiz bir değer girildi.") Bu kod, manuel olarak bir ValueError hatası oluşturur ve isteğe bağlı bir hata mesajı ekleyebilirsiniz. Bu hata programın o noktada sonlanmasına neden olur.
Örnek 1: raise Kullanımı
def pozitif_mi(sayi): if sayi <= 0: raise ValueError("Sayı sıfırdan büyük olmalıdır.") return True try: pozitif_mi(-5) except ValueError as hata: print(hata) Çıktı:
Sayı sıfırdan büyük olmalıdır.
Bu örnekte, eğer fonksiyona negatif bir sayı gönderilirse, raise ifadesi ile manuel olarak bir ValueError hatası fırlatılır. Hata mesajı, except bloğunda yakalanarak ekrana yazdırılır.
Kendi Özel Hata Sınıfını Tanımlama ve Fırlatma
Python’da ayrıca kendi özel hata sınıflarınızı oluşturabilirsiniz. Bu, programınıza özgü hata koşullarını daha iyi tanımlamanıza ve yönetmenize olanak tanır. Özel bir hata sınıfı, Python'daki yerleşik Exception sınıfından türetilir.
Örnek 2: Kendi Hata Sınıfınızı Oluşturma
# Özel bir hata sınıfı oluşturma class PozitifSayiHatasi(Exception): def __init__(self, sayi, mesaj="Sayı sıfırdan büyük olmalıdır." ): self.sayi = sayi self.mesaj = mesaj super().__init__(self.mesaj) def pozitif_mi(sayi): if sayi <= 0: raise PozitifSayiHatasi(sayi) return True # Hata fırlatma ve yakalama try: pozitif_mi(-10) except PozitifSayiHatasi as hata: print(f"Hata: {hata.mesaj} Girilen sayı: {hata.sayi}") Çıktı:
Hata: Sayı sıfırdan büyük olmalıdır. Girilen sayı: -10
Bu Örnekte Neler Oluyor?
-
Özel Hata Sınıfı:
PozitifSayiHatasiadında,Exceptionsınıfından türetilmiş bir hata sınıfı tanımladık. Bu sınıf, bir sayı girildiğinde bu sayının negatif olması durumunda bir hata fırlatmamıza olanak tanır. -
raise:
pozitif_mifonksiyonu içinde, sayı sıfırdan küçük veya eşitse,raiseanahtar kelimesiyle özel hata sınıfımız olanPozitifSayiHatasifırlatılır. -
except:
tryveexceptbloklarıyla bu hata yakalanır ve uygun bir hata mesajı ile kullanıcıya geri bildirilir.
raise ifadesi ile Hata Zincirleme
Bazen, bir hatayı ele alırken orijinal hatayı başka bir hata ile zincirlemek isteyebilirsiniz. Bu durumda raise ifadesini from anahtar kelimesiyle birlikte kullanabilirsiniz.
Örnek 3: Hata Zincirleme
try: sayi = int(input("Bir sayı girin: ")) except ValueError as orijinal_hata: raise TypeError("Hatalı veri türü girildi.") from orijinal_hata Bu örnekte, ValueError hatası oluştuğunda bu hata TypeError ile zincirlenir. Böylece programın orijinal hatası ile yeni hata arasında bir bağlantı oluşturulmuş olur.
Özet
-
raiseanahtar kelimesi, Python’da hataları manuel olarak fırlatmak için kullanılır. - Yerleşik hata türlerini fırlatabileceğiniz gibi, kendi özel hata sınıflarınızı da tanımlayabilir ve fırlatabilirsiniz.
-
raiseifadesi ile özel hata mesajları ekleyebilir, daha anlamlı hata yönetimi gerçekleştirebilirsiniz. -
fromanahtar kelimesiyle hataları zincirleyerek orijinal hatanın kaynağını koruyabilirsiniz.
Bu özellikler, programınızın hatalara karşı daha dayanıklı ve daha iyi yönetilebilir olmasını sağlar.
Bu ders size yardımcı oldu mu? Puan verin!
Geri bildiriminiz içeriğimizi sürekli güncel ve kaliteli tutmamızı sağlar.
Sıkça Sorulan Sorular (SSS)
Bu ders ve konuyla ilgili en çok merak edilenler
Python Hata Nesnesi Fırlatma dersini öğrenmek için ön koşul var mı?
Bu eğitim temel seviyeden ileri seviyeye adım adım hazırlanmıştır. Kodları kopyalayıp Canlı Editör üzerinde test ederek kolayca pratik yapabilirsiniz.
Örnek kodları kendi projelerimde ücretsiz kullanabilir miyim?
Evet, PHP Hocası üzerindeki tüm kod örnekleri açık kaynak mantığıyla sunulmaktadır. Ticari veya kişisel projelerinizde serbestçe kullanabilirsiniz.
Takıldığım bir yerde nereden soru sorabilirim?
Dersin altındaki topluluk yorumları bölümünden sorunuzu sorabilirsiniz. Eğitmenlerimiz ve topluluk üyelerimiz kısa sürede yanıt verecektir.
Topluluk Yorumları (0)
Ders Hakkında Yorum Yap veya Soru Sor
Henüz yorum yapılmamış. İlk yorumu siz yazın!