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:
def 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:
lst = [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:
class 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:
def 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:
try:
lst = [1, 2, 3]
res = get_sum(lst)
print(res)
except ToBigLength:
print('error 1')
except ToSmallLength:
print('error 2')
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.
Proverite rad vaše kreirane funkcije
pomoću konstrukcije try-except. Pri
tome takođe uhvatite vaše izuzetke.