LoslegenKostenlos starten

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>
Kurs ansehen

Ü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 und 1/x[ind] zurückzugeben.
  • wenn ZeroDivisionError auftritt, gib "Cannot divide by zero!" aus,
  • wenn IndexError auftritt, 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))
Code bearbeiten und ausführen