Ausnahmen abfangen
Bevor du eigene, benutzerdefinierte Ausnahmen schreibst, stell sicher, dass die Grundlagen der Ausnahmebehandlung sitzen.
In dieser Übung bekommst du eine Funktion invert_at_index(x, ind), die zwei Argumente annimmt: eine Liste x und einen Index ind. Sie invertiert das Listenelement an dieser Position. Zum Beispiel gibt invert_at_index([5,6,7], 0) 1/5 bzw. 0.2 zurück.
Dein Ziel ist es, eine Fehlerbehandlung zu implementieren, die je nach aufgetretenem Fehler passende benutzerdefinierte Ausnahmen auslöst.
Diese Übung ist Teil des Kurses
<Kurs>Einführung in objektorientierte Programmierung in Python</Kurs>Übungsanweisungen
Verwende innerhalb der Funktion ein try-except-except-Muster (mit zwei except-Blöcken), um zwei Ausnahmen wie folgt abzufangen und zu behandeln:
try, den Code unverändert auszuführen und1/x[ind]zurückzugeben.- wenn
ZeroDivisionErrorauftritt, gib"Cannot divide by zero!"aus, - wenn
IndexErrorauftritt, gib"Index out of range!"aus
Du weißt, dass alles korrekt ist, wenn der Code ohne Fehler läuft und in der Konsole Folgendes erscheint:
0.16666666666666666
Cannot divide by zero!
None
Index out of range!
None
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# Modify the function to catch exceptions
def invert_at_index(x, ind):
____:
return 1/x[ind]
_____:
print("____")
____:
print("____")
a_list = [5,6,0,7]
# Works okay
print(invert_at_index(a_list, 1))
# Potential ZeroDivisionError
print(invert_at_index(a_list, 2))
# Potential IndexError
print(invert_at_index(a_list, 5))