Erste SchritteKostenlos loslegen

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], 1) 1/6 zurück, oder 0.166666.

Versuche, den Code so auszuführen, wie er ist, und prüfe die Ausgabe in der Konsole. Es gibt zwei unsichere Operationen in dieser Funktion: Erstens, wenn das Element, das wir versuchen zu invertieren, den Wert 0 hat, dann wird der Code eine ZeroDivisionError Ausnahme verursachen. Zweitens, wenn der an die Funktion übergebene Index außerhalb des Listenbereichs liegt, verursacht der Code eine IndexError. In beiden Fällen wird das Skript unterbrochen, was möglicherweise nicht erwünscht ist.

Diese Übung ist Teil des Kurses

Objektorientierte Programmierung in Python

Kurs anzeigen

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 auszuführen, wie er ist,
  • 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 zum Anfassen

Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.

# MODIFY the function to catch exceptions
def invert_at_index(x, ind):
    return 1/x[ind]
 
a = [5,6,0,7]

# Works okay
print(invert_at_index(a, 1))

# Potential ZeroDivisionError
print(invert_at_index(a, 2))

# Potential IndexError
print(invert_at_index(a, 5))
Bearbeiten und Ausführen von Code