Python'da İstisna Atan Fonksiyon
İstisnaları, fonksiyonlar içinde koşullar kullanarak belirlemek ve atmak oldukça kullanışlıdır.
Hadi, bir get_sum fonksiyonu yapalım.
Bu fonksiyon, listenin uzunluğu 3'ten
küçük veya eşit olduğunda sadece liste elemanlarının
toplamını versin. Aksi takdirde, kendi ToBigLength
istisnamız atılsın:
def get_sum(lst):
if len(lst) <= 3:
return sum(lst)
else:
raise ToBigLength
Şimdi get_sum fonksiyonuna bir liste
geçirelim ve fonksiyonu konsola yazdıralım:
lst = [1, 2, 3, 4]
print(get_sum(lst)) # 6 yazdıracak
Ayrıca fonksiyonlarda birden fazla istisna
tipini yakalamak da mümkündür. Hadi bir
istisna sınıfı daha oluşturalım: ToSmallLength:
class ToSmallLength(Exception):
pass
Şimdi fonksiyonda, eğer listenin uzunluğu sıfıra
eşitse, ToSmallLength atılsın. Eğer hiçbir
istisna yakalanmazsa, listenin tüm elemanlarının
toplamı verilsin:
def get_sum(lst):
if len(lst) > 3:
raise ToBigLength
if len(lst) == 0:
raise ToSmallLength
else:
return sum(lst)
Pratiklik için, fonksiyon parametresine geçirilecek
listeyi, fonksiyonun kendisini ve onun çağrısını
bir try bloğu içine alabiliriz.
İki istisnamızın yakalanmasını ise except
bloklarında yerleştirebiliriz:
try:
lst = [1, 2, 3]
res = get_sum(lst)
print(res)
except ToBigLength:
print('error 1')
except ToSmallLength:
print('error 2')
Bir sayıyı parametre olarak alan bir fonksiyon oluşturun.
İçinde, eğer sayı negatifse veya sıfıra eşitse, ilgili
istisnaların atılması için koşullar yazın.
Aksi durumda sayı 3 ile çarpılsın.
Oluşturduğunuz fonksiyonun çalışmasını try-except
yapısı ile test edin. Bu sırada istisnalarınızı da yakalayın.