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:
def 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:
lst = [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:
class 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:
def 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:
try:
lst = [1, 2, 3]
res = get_sum(lst)
print(res)
except ToBigLength:
print('error 1')
except ToSmallLength:
print('error 2')
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.
Testen Sie die von Ihnen erstellte Funktion mit
Hilfe einer try-except-Konstruktion.
Fangen Sie dabei auch Ihre Exceptions ab.