Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!

This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!

Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount

Foutafhandeling


Wanneer je programmeert, gebeuren er fouten. Het is gewoon een feit van het leven. Misschien heeft de gebruiker onjuiste invoer gegeven. Misschien was een netwerkbron niet beschikbaar. Misschien was het geheugen van het programma op. Of de programmeur heeft zelfs een fout gemaakt!

Python's oplossing voor fouten zijn uitzonderingen. Je hebt misschien al eerder een uitzondering gezien.

print(a)

#error
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined

Oeps! Vergeet een waarde toe te wijzen aan de variabele 'a'.

Maar soms wil je niet dat uitzonderingen het programma volledig stoppen. Misschien wil je iets speciaals doen wanneer een uitzondering optreedt. Dit wordt gedaan in een try/except blok.

Hier is een triviaal voorbeeld: Stel dat je over een lijst itereren. Je moet over 20 nummers itereren, maar de lijst is gemaakt van gebruikersinvoer en heeft misschien niet 20 nummers erin. Nadat je het einde van de lijst hebt bereikt, wil je gewoon dat de rest van de nummers als een 0 worden geïnterpreteerd. Hier is hoe je dat zou kunnen doen:

def do_stuff_with_number(n):
    print(n)

def catch_this():
    the_list = (1, 2, 3, 4, 5)

    for i in range(20):
        try:
            do_stuff_with_number(the_list[i])
        except IndexError: # Raised when accessing a non-existing index of a list
            do_stuff_with_number(0)

catch_this()

Dat was niet al te moeilijk! Je kunt dat doen met elke uitzondering. Voor meer details over het afhandelen van uitzonderingen, kijk dan niet verder dan de Python Docs

Oefening

Behandel alle uitzonderingen! Denk terug aan de vorige lessen om de achternaam van de acteur te retourneren.

# Setup actor = {"name": "John Cleese", "rank": "awesome"} # Function to modify!!! def get_last_name(): return actor["last_name"] # Test code get_last_name() print("All exceptions caught! Good job!") print("The actor's last name is %s" % get_last_name()) actor = {"name": "John Cleese", "rank": "awesome"} def get_last_name(): return actor["name"].split()[1] get_last_name() print("All exceptions caught! Good job!") print("The actor's last name is %s" % get_last_name()) test_output_contains("Cleese") test_output_contains("All exceptions caught! Good job!") test_output_contains("The actor's last name is Cleese") success_msg("Great work!")

This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!

Previous Tutorial Next Tutorial Take the Test
Copyright © learnpython.org. Read our Terms of Use and Privacy Policy