Funkcija sa izuzetkom u Pythonu

Izuzetke je veoma zgodno bacati, propisujući ih u funkciji pomoću uslova.

Hajde da napravimo funkciju get_sum, koja će ispisivati zbir elemenata liste samo ako je dužina liste manja ili jednaka 3. U suprotnom, neka se baci naš izuzetak ToBigLength:

pythondef get_sum(lst):
  if len(lst) <= 3:
    return sum(lst)
  else:
    raise ToBigLength

Sada prosledimo funkciji get_sum listu i ispišimo rezultat funkcije u konzolu:

pythonlst = [1, 2, 3, 4]

print(get_sum(lst)) # ispisaće 6

Takođe, u funkcijama je moguće postaviti hvatanje nekoliko tipova izuzetaka. Hajde da kreiramo još jednu klasu izuzetaka ToSmallLength:

pythonclass ToSmallLength(Exception):
  pass

Sada ćemo propisati u funkciji uslov: ako je dužina liste jednaka nuli, neka se baci ToSmallLength. Ako se ne uhvati nijedan izuzetak, neka se ispiše zbir svih elemenata liste:

pythondef get_sum(lst):
  if len(lst) > 3:
    raise ToBigLength
  if len(lst) == 0:
    raise ToSmallLength
  else:
    return sum(lst)

Radi praktičnosti, možemo staviti listu, koja će se proslediti kao parametar funkciji, samu funkciju i njen poziv u blok try. A hvatanje naša dva izuzetka smestićemo u blokovima except:

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

Kreirajte funkciju koja će kao parametar primatiti broj. U njoj propišite uslove: ako je broj negativan ili jednak nuli, neka se bace odgovarajući izuzeci. U suprotnom neka broj bude pomnožen sa 3.

Задание 2

Proverite rad vaše kreirane funkcije pomoću konstrukcije try-except. Pri tome takođe uhvatite vaše izuzetke.