Functie met uitzondering in Python
Uitzonderingen zijn erg handig om te throwen, door ze in functies te beschrijven met behulp van voorwaarden.
Laten we een functie get_sum maken,
die de som van de elementen van een lijst zal teruggeven,
alleen als de lengte van de lijst kleiner dan
of gelijk is aan 3. Anders,
laat onze uitzondering ToBigLength worden gegooid:
def get_sum(lst):
if len(lst) <= 3:
return sum(lst)
else:
raise ToBigLength
Laten we nu een lijst doorgeven aan de functie get_sum
en de functie naar de console printen:
lst = [1, 2, 3, 4]
print(get_sum(lst)) # geeft 6
Ook in functies kan het opvangen van
meerdere typen uitzonderingen worden ingesteld.
Laten we nog een uitzonderingsklasse ToSmallLength aanmaken:
class ToSmallLength(Exception):
pass
Laten we nu in de functie een voorwaarde beschrijven: als
de lengte van de lijst gelijk is aan nul, laat dan
ToSmallLength worden gegooid. Als
geen enkele uitzondering wordt opgevangen,
laat dan de som van alle elementen in de lijst worden teruggegeven:
def get_sum(lst):
if len(lst) > 3:
raise ToBigLength
if len(lst) == 0:
raise ToSmallLength
else:
return sum(lst)
Voor het gemak kunnen we de lijst die
wordt doorgegeven aan de parameter van de functie,
de functie zelf en haar aanroep, in een try blok plaatsen.
En de opvang van onze twee uitzonderingen plaatsen we
in except blokken:
try:
lst = [1, 2, 3]
res = get_sum(lst)
print(res)
except ToBigLength:
print('error 1')
except ToSmallLength:
print('error 2')
Maak een functie aan die een getal als parameter accepteert.
Beschrijf daarin voorwaarden:
als het getal negatief is of gelijk is aan nul, laat
dan de corresponderende uitzonderingen worden gegooid.
Anders laat het getal worden
vermenigvuldigd met 3.
Controleer de werking van de door jou gemaakte functie met
behulp van een try-except constructie.
Vang hierbij ook jouw uitzonderingen op.