Funktion med undtagelse i Python
Undtagelser er meget praktiske at kaste, når man definerer dem i funktioner ved hjælp af betingelser.
Lad os lave en funktion get_sum,
som vil returnere summen af elementerne
i en liste, kun hvis længden af listen er mindre
end eller lig med 3. I modsat fald,
lad den kaste vores egen undtagelse ToBigLength:
def get_sum(lst):
if len(lst) <= 3:
return sum(lst)
else:
raise ToBigLength
Lad os nu give funktionen get_sum
en liste og udskrive resultatet i konsollen:
lst = [1, 2, 3, 4]
print(get_sum(lst)) # vil udskrive 6
Man kan også håndtere flere typer undtagelser
i funktioner. Lad os
oprette endnu en undtagelsesklasse ToSmallLength:
class ToSmallLength(Exception):
pass
Lad os nu tilføje en betingelse i funktionen: hvis
længden af listen er nul, så lad den kaste
ToSmallLength. Hvis ingen undtagelser bliver kastet,
så lad den returnere
summen af alle elementerne i listen:
def get_sum(lst):
if len(lst) > 3:
raise ToBigLength
if len(lst) == 0:
raise ToSmallLength
else:
return sum(lst)
For nemheds skyld kan man indkapsle listen, som
bliver givet til funktionen,
selve funktionskaldet og dens udskrift i en try-blok.
Og håndteringen af vores to undtagelser placeres
i except-blokkene:
try:
lst = [1, 2, 3]
res = get_sum(lst)
print(res)
except ToBigLength:
print('error 1')
except ToSmallLength:
print('error 2')
Opret en funktion, som tager et tal som parameter.
I den, tilføj betingelser:
hvis tallet er negativt eller lig med nul, så
lad den kaste de respektive undtagelser.
I modsat fald, lad tallet blive
ganget med 3.
Test den funktion, du har oprettet, med
hjælp af en try-except-konstruktion. Ved
denne lejlighed skal du også håndtere dine undtagelser.