Funktionen mit Exceptions in Python

Es ist sehr praktisch, Exceptions auszulösen, indem man sie in Funktionen mit Hilfe von Bedingungen definiert.

Lassen Sie uns eine Funktion get_sum erstellen, die die Summe der Elemente einer Liste nur dann ausgibt, wenn die Länge der Liste kleiner oder gleich 3 ist. Andernfalls soll unsere Exception ToBigLength ausgelöst werden:

pythondef get_sum(lst):
  if len(lst) <= 3:
    return sum(lst)
  else:
    raise ToBigLength

Nun übergeben wir der Funktion get_sum eine Liste und geben das Ergebnis in der Konsole aus:

pythonlst = [1, 2, 3, 4]

print(get_sum(lst)) # gibt 6 aus

In Funktionen kann man auch das Abfangen mehrerer Exception-Typen definieren. Lassen Sie uns noch eine Exception-Klasse ToSmallLength erstellen:

pythonclass ToSmallLength(Exception):
  pass

Nun schreiben wir in der Funktion eine Bedingung: Wenn die Länge der Liste null ist, soll ToSmallLength ausgelöst werden. Wenn keine Exception ausgelöst wird, soll die Summe aller Elemente der Liste ausgegeben werden:

pythondef get_sum(lst):
  if len(lst) > 3:
    raise ToBigLength
  if len(lst) == 0:
    raise ToSmallLength
  else:
    return sum(lst)

Der Übersichtlichkeit halber kann man die Liste, die als Parameter an die Funktion übergeben wird, den Funktionsaufruf selbst, in einen try-Block packen. Und das Abfangen unserer beiden Exceptions platzieren wir in except-Blöcken:

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

Erstellen Sie eine Funktion, die eine Zahl als Parameter entgegennimmt. Definieren Sie in ihr Bedingungen: Wenn die Zahl negativ oder gleich null ist, sollen entsprechende Exceptions ausgelöst werden. Andernfalls soll die Zahl mit 3 multipliziert werden.

Задание 2

Testen Sie die von Ihnen erstellte Funktion mit Hilfe einer try-except-Konstruktion. Fangen Sie dabei auch Ihre Exceptions ab.