Funktion med undantag i Python
Undantag är mycket bekväma att kasta ut, genom att specificera dem i funktioner med villkor.
Låt oss skapa en funktion get_sum,
som kommer att returnera summan av elementen
i en lista endast om listans längd är mindre
än eller lika med 3. Annars,
låt vårt undantag ToBigLength kastas:
def get_sum(lst):
if len(lst) <= 3:
return sum(lst)
else:
raise ToBigLength
Låt oss nu skicka en lista till funktionen get_sum
och skriva ut resultatet till konsolen:
lst = [1, 2, 3, 4]
print(get_sum(lst)) # kommer att skriva ut 6
I funktioner kan man också fånga flera
typer av undantag. Låt oss skapa
ytterligare en undantagsklass ToSmallLength:
class ToSmallLength(Exception):
pass
Låt oss nu specificera ett villkor i funktionen: om
listans längd är noll, låt ToSmallLength kastas.
Om inget undantag fångas, låt summan
av alla element i listan returneras:
def get_sum(lst):
if len(lst) > 3:
raise ToBigLength
if len(lst) == 0:
raise ToSmallLength
else:
return sum(lst)
För enkelhetens skull kan man placera listan som
skickas till funktionens parameter,
själva funktionen och dess anrop i ett try-block.
Och fånga våra två undantag
i except-block:
try:
lst = [1, 2, 3]
res = get_sum(lst)
print(res)
except ToBigLength:
print('error 1')
except ToSmallLength:
print('error 2')
Skapa en funktion som tar ett nummer som parameter.
Specificera villkor i den: om talet är negativt eller lika med noll, låt
motsvarande undantag kastas.
Annars, låt talet multipliceras med 3.
Testa funktionen du skapade med
hjälp av konstruktionen try-except. Vid
detta, fånga även dina undantag.