Funksjon med unntak i Python
Unntak er veldig praktiske å kaste, ved å definere dem i funksjoner ved hjelp av betingelser.
La oss lage en funksjon get_sum,
som skal returnere summen av elementene
i en liste bare hvis lengden på listen er mindre
enn eller lik 3. Ellers,
la vårt eget unntak ToBigLength kastes:
def get_sum(lst):
if len(lst) <= 3:
return sum(lst)
else:
raise ToBigLength
La oss nå sende en liste til funksjonen get_sum
og skrive ut resultatet til konsollen:
lst = [1, 2, 3, 4]
print(get_sum(lst)) # vil skrive ut 6
Man kan også håndtere flere typer unntak
i funksjoner. La oss
opprette en unntaksklasse til ToSmallLength:
class ToSmallLength(Exception):
pass
La oss nå definere en betingelse i funksjonen: hvis
lengden på listen er null, skal
ToSmallLength kastes. Hvis
ingen unntak blir kastet, skal summen
av alle elementene i listen returneres:
def get_sum(lst):
if len(lst) > 3:
raise ToBigLength
if len(lst) == 0:
raise ToSmallLength
else:
return sum(lst)
For enkelhets skyld kan vi sette inn listen som
skal sendes til funksjonens parameter,
selve funksjonskallet og utskriften i en try-blokk.
Og håndteringen av våre to unntak plasserer vi
i except-blokkene:
try:
lst = [1, 2, 3]
res = get_sum(lst)
print(res)
except ToBigLength:
print('error 1')
except ToSmallLength:
print('error 2')
Opprett en funksjon som tar imot et tall som parameter.
I den, definer betingelser:
hvis tallet er negativt eller lik null, så
la de tilsvarende unntakene kastes.
Ellers, la tallet bli
multiplisert med 3.
Test funksjonen du har opprettet
ved hjelp av try-except-konstruksjonen.
Håndter også unntakene dine i denne konstruksjonen.