Python-da Istisna atan Funksiya
Istisnalari şertler vasitesile funksiyalarda teyin etmek cox rahatdir.
Gelin get_sum funksiyasini yaradaq,
bu funksiya siyahinin elementlerinin cemin
ancaq siyahinin uzunluqu 3-den kicik
ve ya beraber olduqda qaytarsin. Əks halda,
oz istisnamiz ToBigLength atilsin:
def get_sum(lst):
if len(lst) <= 3:
return sum(lst)
else:
raise ToBigLength
Indi get_sum funksiyasina bir siyahi
otek ve funksiyani konsola çap edek:
lst = [1, 2, 3, 4]
print(get_sum(lst)) # 6 çap edecek
Həmçinin, funksiyalarda bir neçə istisna
novunun tutulmasini teyin etmek olar.
Gelin bir istisna sinifi daha yaradaq ToSmallLength:
class ToSmallLength(Exception):
pass
Indi funksiyada şerti teyin edek, əgər
siyahinin uzunluqu sifira beraberdirse,
ToSmallLength atilsin. Əgər heç bir
istisna tutulmasa, o zaman siyahinin butun
elementlerinin cemi çap olunsun:
def get_sum(lst):
if len(lst) > 3:
raise ToBigLength
if len(lst) == 0:
raise ToSmallLength
else:
return sum(lst)
Rahatliq üçün funksiyanin parametrine
otekilecek siyahini, funksiyanin ozunu
ve onun çağırılışını try blokunda
yerləşdirmek olar. Iki istisnamizin tutulmasini
isə except bloklarinda yerleşdirek:
try:
lst = [1, 2, 3]
res = get_sum(lst)
print(res)
except ToBigLength:
print('error 1')
except ToSmallLength:
print('error 2')
Parametr kimi bir eded qebul eden bir
funksiya yaradin. Onda şertler teyin edin,
eger eded menfi ve ya sifira beraberdirse,
u ygun istisnalar atilsin. Əks halda isə
eded 3-e vurulsun.
Yaratdığınız funksiyanın işini try-except
konstruksiyası vasitəsilə yoxlayın. Bunu
edərkən sizin istisnalarınızı da tutun.