Aan de slagGa gratis aan de slag

Exceptions opvangen

Voordat je je eigen custom exceptions gaat schrijven, controleren we eerst of je de basis van het afhandelen van exceptions beheerst.

In deze oefening krijg je een functie invert_at_index(x, ind) die twee argumenten aanneemt: een lijst x en een index ind, en het element op die index in de lijst invert. Bijvoorbeeld, invert_at_index([5,6,7], 0) retourneert 1/5, oftewel 0.2.

Je doel is om errorhandling te implementeren die custom exceptions laat zien op basis van het type fout dat optreedt.

Deze oefening maakt deel uit van de cursus

Introductie tot objectgeoriënteerd programmeren in Python

Cursus bekijken

Oefeninstructies

Gebruik een try - except - except-patroon (met twee except-blokken) binnen de functie om twee exceptions op te vangen en af te handelen als volgt:

  • try voer de code ongewijzigd uit en retourneer 1/x[ind].
  • als er een ZeroDivisionError optreedt, print "Cannot divide by zero!",
  • als er een IndexError optreedt, print "Index out of range!"

Je weet dat het gelukt is als de code zonder fouten draait en de output in de console is:

0.16666666666666666
Cannot divide by zero!
None
Index out of range!
None

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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 bewerken en uitvoeren