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
Einführung in objektorientierte Programmierung in Python
Anleitung zur Übung
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 Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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))