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:

pythondef 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:

pythonlst = [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:

pythonclass 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:

pythondef 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:

pythontry:
  lst = [1, 2, 3]
  res = get_sum(lst)
  print(res)
except ToBigLength:
  print('error 1')
except ToSmallLength:
  print('error 2')
Задание 1

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.

Задание 2

Test den funktion, du har oprettet, med hjælp af en try-except-konstruktion. Ved denne lejlighed skal du også håndtere dine undtagelser.