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
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:
tryvoer de code ongewijzigd uit en retourneer1/x[ind].- als er een
ZeroDivisionErroroptreedt, print"Cannot divide by zero!", - als er een
IndexErroroptreedt, 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))