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:

pythondef 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:

pythonlst = [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:

pythonclass 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:

pythondef 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:

pythontry:
  lst = [1, 2, 3]
  res = get_sum(lst)
  print(res)
except ToBigLength:
  print('error 1')
except ToSmallLength:
  print('error 2')
Задание 1

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.

Задание 2

Preizkusite delovanje funkcije, ki ste jo ustvarili, z uporabo konstrukcije try-except. Pri tem tudi ujemite vaše izjeme.