LoslegenKostenlos loslegen

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

Kurs anzeigen

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 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 Ü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))
Code bearbeiten und ausführen