Fangen von Ausnahmen
Bevor du anfängst, deine eigenen Ausnahmen zu schreiben, solltest du die Grundlagen des Umgangs mit Ausnahmen beherrschen.
In dieser Übung erhältst du eine Funktion invert_at_index(x, ind)
, die zwei Argumente annimmt, eine Liste x
und einen Index ind
, und das Element der Liste an diesem Index invertiert. Zum Beispiel gibt invert_at_index([5,6,7], 0)
1/5
zurück, oder 0.2
.
Dein Ziel ist es, eine Fehlerbehandlung zu implementieren, die je nach Art des aufgetretenen Fehlers benutzerdefinierte Ausnahmen auslöst.
Diese Übung ist Teil des Kurses
Einführung in die objektorientierte Programmierung in Python
Anleitung zur Übung
Verwende ein try
- except
- except
Muster (mit zwei except
Blöcken) innerhalb der Funktion, um zwei Ausnahmen wie folgt abzufangen und zu behandeln:
try
den Code so ausführt, wie er ist, und1/x[ind]
zurückgibt.- Wenn
ZeroDivisionError
auftritt, drucke"Cannot divide by zero!"
, - wenn
IndexError
auftritt, drucken"Index out of range!"
Du weißt, dass du es richtig gemacht hast, wenn der Code ohne Fehler läuft und die Ausgabe in der Konsole ist:
0.16666666666666666
Cannot divide by zero!
None
Index out of range!
None
Interaktive Ü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))