Funkcija z izjemo v Pythonu
Izjeme je zelo priročno sprožiti, tako da jih v funkciji določimo s pogoji.
Naredimo funkcijo get_sum,
ki bo vrnila vsoto elementov
seznama le, če je dolžina seznama manjša
ali enaka 3. V nasprotnem primeru
pa naj se sproži naša izjema ToBigLength:
def get_sum(lst):
if len(lst) <= 3:
return sum(lst)
else:
raise ToBigLength
Zdaj posredujmo v funkcijo get_sum
seznam in izpišimo rezultat funkcije v konzolo:
lst = [1, 2, 3, 4]
print(get_sum(lst)) # izpiše 6
V funkcijah lahko tudi lovimo več tipov izjem.
Ustvarimo še en razred izjem ToSmallLength:
class ToSmallLength(Exception):
pass
Zdaj v funkciji določimo pogoj: če je
dolžina seznama enaka nič, naj se sproži
ToSmallLength. Če se ne sproži
nobena izjema, naj se izpiše
vsota vseh elementov seznama:
def get_sum(lst):
if len(lst) > 3:
raise ToBigLength
if len(lst) == 0:
raise ToSmallLength
else:
return sum(lst)
Za udobje lahko seznam, ki
bo posredovan v parameter funkcije,
skozi funkcijo in njen klic zapremo v blok try.
Lov naših dveh izjem pa postavimo
v bloke except:
try:
lst = [1, 2, 3]
res = get_sum(lst)
print(res)
except ToBigLength:
print('error 1')
except ToSmallLength:
print('error 2')
Ustvarite funkcijo, ki bo kot parameter sprejela
število. V njej določite pogoje:
če je število negativno ali enako nič, naj
se sprožijo ustrezne izjeme.
V nasprotnem primeru naj bo število
pomnoženo z 3.
Preizkusite delovanje funkcije, ki ste jo ustvarili,
z uporabo konstrukcije try-except. Pri
tem tudi ujemite vaše izjeme.