Python Kullanıcı Tanımlı İstisnalar

Bu eğitimde, örneklerin yardımıyla gereksinimlerinize bağlı olarak özel istisnaları nasıl tanımlayacağınızı öğreneceksiniz.

Python, programda bir şeyler ters gittiğinde programınızı bir hata vermeye zorlayan çok sayıda yerleşik istisnaya sahiptir.

Ancak bazen amacınıza hizmet eden kendi özel istisnalarınızı oluşturmanız gerekebilir.


Özel İstisnalar Oluşturma

Python’da kullanıcılar yeni bir sınıf oluşturarak özel istisnalar tanımlayabilir. Bu istisna sınıfı, yerleşik Exceptionsınıftan doğrudan veya dolaylı olarak türetilmelidir. Yerleşik istisnaların çoğu da bu sınıftan türetilmiştir.

Burada, sınıftan CustomErrormiras alan bir kullanıcı tanımlı istisna oluşturduk . ExceptionBu yeni istisna, diğer istisnalar gibi, raiseisteğe bağlı bir hata mesajı içeren ifade kullanılarak oluşturulabilir.

Büyük bir Python programı geliştirirken, programımızın oluşturduğu tüm kullanıcı tanımlı istisnaları ayrı bir dosyaya yerleştirmek iyi bir uygulamadır. Birçok standart modül bunu yapar. İstisnalarını ayrı ayrı exceptions.pyveya errors.py(genellikle ama her zaman değil) olarak tanımlarlar.

Kullanıcı tanımlı istisna sınıfı, normal bir sınıfın yapabileceği her şeyi uygulayabilir, ancak genellikle onları basit ve özlü yaparız. Çoğu uygulama özel bir temel sınıf bildirir ve bu temel sınıftan başka istisna sınıfları türetir. Bu kavram aşağıdaki örnekte daha açık hale getirilmiştir.


Örnek: Python’da Kullanıcı Tanımlı İstisna

Bu örnekte, bir programda hataları oluşturmak ve yakalamak için kullanıcı tanımlı istisnaların nasıl kullanılabileceğini göstereceğiz.

Bu program, kullanıcıdan saklanan bir sayıyı doğru tahmin edene kadar bir sayı girmesini isteyecektir. Anlamalarına yardımcı olmak için, tahminlerinin saklanan sayıdan büyük veya küçük olup olmadığına dair bir ipucu verilir.

İşte bu programın bir örnek çalışması.

adında bir temel sınıf tanımladık Error.

Programımız tarafından gerçekten ortaya çıkarılan diğer iki istisna ( ValueTooSmallErrorve ValueTooLargeError) bu sınıftan türetilmiştir. Python programlamasında kullanıcı tanımlı istisnaları tanımlamanın standart yolu budur, ancak sadece bu yolla sınırlı değilsiniz.


İstisna Sınıflarını Özelleştirme

İhtiyaçlarımıza göre diğer argümanları kabul etmek için bu sınıfı daha da özelleştirebiliriz.

İstisna sınıflarını özelleştirme hakkında bilgi edinmek için Nesneye Dayalı programlama hakkında temel bilgilere sahip olmanız gerekir.

Python’da Nesne Yönelimli programlama hakkında öğrenmeye başlamak için Python Nesne Yönelimli Programlama’yı ziyaret edin .

Bir örneğe bakalım:

Çıktı

Burada, Exceptionkendi özel argümanlarımızı salaryve message. Ardından, üst sınıfın yapıcısı , argüman kullanılarak Exceptionmanuel olarak çağrılır .self.messagesuper()

Özel self.salaryöznitelik daha sonra kullanılmak üzere tanımlanır.

Sınıfın kalıtsal __str__yöntemi , yükseltildiğinde Exceptionilgili mesajı görüntülemek için kullanılır .SalaryNotInRangeError

__str__Ayrıca geçersiz kılarak yöntemin kendisini de özelleştirebiliriz .

Çıktı


Python’da istisnaları nasıl ele alabileceğiniz hakkında daha fazla bilgi edinmek için Python İstisna İşleme sayfasını ziyaret edin .

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir