Skip to content
Programmeren in Python, leer de nieuwste technieken
Programmeren in PythonProgrammeren in Python
  • Home
  • Blog
  • Documentatie
  • Cursussen
  • Tools
    • Python Paste
Programmeren in PythonProgrammeren in Python
  • Home
  • Blog
  • Documentatie
  • Cursussen
  • Tools
    • Python Paste

Introductie

3
  • 1.1 Wat is Python?
  • 1.2 Python installatie
  • 1.3 PyCharm Installatie

Basisprogrammering

6
  • 2.1 Python Basis: Variabelen, Datatypes en Operatoren
  • 2.2 Python if else (en elif)
  • 2.3 Python list (Array, Lijsten)
  • 2.4 Python Lussen: for loop, while loop, break, continue
  • 2.5 Python Functies: Definities, Parameters en Terugkeerwaarden
  • 2.6 Foutafhandeling: try, except, else, finally

Datatypes

13
  • 3.1 Introductie tot Geavanceerde Datatypes
  • 3.2 Python Tuple
  • 3.3 Python Set
  • 3.4 Python Dictionary
  • 3.5 Werken met Strings en String-methoden
  • 3.6 Collections Module: Krachtige Tools in Python
  • 3.7 Iterators en Generators
  • 3.8 List Comprehensions
  • 3.9 Geavanceerde Sortering
  • 3.10 Werken met Multi-dimensionale Data
  • 3.11 Typing en Datatypes
  • 3.12 Itertools voor Geavanceerde Iteraties
  • 3.13 Data Conversies

Modules

8
  • 4.1 Wat zijn Modules en Waarom zijn ze Belangrijk?
  • 4.2 Werken met Ingebouwde Modules
  • 4.3 Installeren en Gebruiken van Externe Pakketten
  • 4.4 Eigen Modules Maken
  • 4.5 Introductie tot Pakketten
  • 4.6 Importeren en Namespaces Begrijpen
  • 4.7 Geavanceerd: Relatief Importeren
  • 4.8 Organiseren van Grotere Projecten

Data Analyse

3
  • 5.1 Python Dataframe en Data Opschonen met Pandas
  • 5.2 Python Pandas Basisstatistieken en Data-analyse
  • 5.3 Python Numpy (NpArray): De Kracht van Numerieke Berekeningen

Webontwikkeling

5
  • 7.1 Inleiding tot Webontwikkeling
  • 7.2 HTTP-Verzoeken met requests: Communiceren met het Web
  • 7.3 Webscraping met BeautifulSoup: Data van het Web Halen als er geen APIs zijn
  • 7.4 Python Flask, een webserver & API tutorial
  • 7.5 WSGI & WebOb

Deploy

1
  • Deploy met Supervisor op Ubuntu
View Categories
  • Home
  • Documentatie
  • Basisprogrammering
  • 2.6 Foutafhandeling: try, except, else, finally

2.6 Foutafhandeling: try, except, else, finally

4 minuten leestijd

Fouten maken is menselijk – en dat geldt ook voor je programma’s! Gelukkig kun je in Python fouten netjes afhandelen, zodat je programma niet crasht. Met try, except, else, en finally kun je een fout detecteren, ermee omgaan en zelfs specifieke acties uitvoeren, ongeacht wat er gebeurt. 🎉

Laten we dit samen ontdekken!

Wat is foutafhandeling? #

Foutafhandeling is een manier om te voorkomen dat je programma stopt als er iets onverwachts gebeurt. Stel je voor dat je een gebruiker vraagt een getal in te voeren, maar deze per ongeluk tekst typt. Zonder foutafhandeling zou je programma crashen. Met foutafhandeling kun je dit elegant oplossen.

Zonder foutafhandeling:

# Als de gebruiker tekst typt, crasht dit
getal = int(input("Voer een getal in: "))
print(f"Je hebt {getal} ingevoerd.")
Python

Met foutafhandeling:

try:
    getal = int(input("Voer een getal in: "))
    print(f"Je hebt {getal} ingevoerd.")
except ValueError:
    print("Ongeldige invoer! Typ een getal.")
Python

De bouwstenen van foutafhandeling #

1. Try en Except #

Met try probeer je een stukje code uit te voeren. Als er een fout optreedt, springt Python naar het bijbehorende except-blok.

Voorbeeld:

try:
    x = 10 / 0
except ZeroDivisionError:
    print("Je kunt niet door nul delen!")
Python

  • Python probeert 10 / 0 uit te voeren.
  • Omdat delen door nul niet kan, wordt een ZeroDivisionError gegenereerd en de code in het except-blok uitgevoerd.
2. Else #

Met else kun je aangeven wat er moet gebeuren als er géén fout optreedt in het try-blok.

Voorbeeld:

try:
    getal = int(input("Voer een getal in: "))
except ValueError:
    print("Dat is geen geldig getal!")
else:
    print(f"Goed gedaan, je hebt {getal} ingevoerd.")
Python

  • Als de gebruiker een geldig getal invoert, wordt het else-blok uitgevoerd.
  • Als er een fout optreedt, slaat Python het else-blok over.
3. Finally #

Met finally kun je code uitvoeren die altijd wordt uitgevoerd, ongeacht of er een fout was of niet. Dit is handig voor het opruimen van resources, zoals het sluiten van een bestand of databaseverbinding.

Voorbeeld:

try:
    bestand = open("niet_bestaand_bestand.txt", "r")
except FileNotFoundError:
    print("Bestand niet gevonden!")
finally:
    print("Deze regel wordt altijd uitgevoerd.")
Python

  • finally wordt altijd uitgevoerd, zelfs als er een fout optreedt in het try-blok.

Meerdere Except-blokken #

Je kunt meerdere except-blokken hebben om verschillende soorten fouten af te handelen.

Voorbeeld:

try:
    keuze = int(input("Voer een getal in: "))
    resultaat = 10 / keuze
except ValueError:
    print("Dat is geen geldig getal!")
except ZeroDivisionError:
    print("Je kunt niet door nul delen!")
Python

  • Als de gebruiker tekst invoert, wordt ValueError afgehandeld.
  • Als de gebruiker 0 invoert, wordt ZeroDivisionError afgehandeld.

Fouten hergebruiken met Exception #

Als je niet zeker weet welk type fout kan optreden, kun je de algemene Exception gebruiken. Dit vangt alle fouten op.

Voorbeeld:

try:
    getal = int(input("Typ een getal: "))
    resultaat = 10 / getal
except Exception as e:
    print(f"Er is een fout opgetreden: {e}")
Python

  • De variabele e bevat details over de fout, wat handig is voor debugging.

Praktische voorbeelden #

Voorbeeld 1: Wachtwoordvalidatie

def controleer_wachtwoord(wachtwoord):
    try:
        if len(wachtwoord) < 8:
            raise ValueError("Het wachtwoord is te kort!")
    except ValueError as e:
        print(e)
    else:
        print("Wachtwoord is geaccepteerd.")
    finally:
        print("Wachtwoordcontrole voltooid.")

controleer_wachtwoord("12345")
Python

Uitvoer:

Het wachtwoord is te kort!
Wachtwoordcontrole voltooid.
Python

Voorbeeld 2: Werken met bestanden

try:
    bestand = open("voorbeeld.txt", "r")
    inhoud = bestand.read()
    print(inhoud)
except FileNotFoundError:
    print("Het bestand bestaat niet.")
finally:
    print("Poging om bestand te openen voltooid.")
Python

Veelvoorkomende fouten en tips #

  1. Vang niet alle fouten met Exception tenzij noodzakelijk:
    Dit maakt debugging lastig, omdat specifieke fouten niet meer zichtbaar zijn.
  2. Gebruik duidelijke foutmeldingen:
    Maak foutmeldingen begrijpelijk voor gebruikers.
  3. Gebruik finally voor opruimwerk:
    Denk aan het sluiten van bestanden, databases of netwerkverbindingen.

Samenvatting #

Met foutafhandeling kun je je programma robuuster maken en een betere gebruikerservaring bieden. Of je nu eenvoudige invoerfouten wilt afvangen of complexe foutscenario’s wilt beheren, de combinatie van try, except, else, en finally geeft je de controle.

Probeer zelf fouten te simuleren en op te lossen in je code. Het voelt geweldig om een probleem elegant te kunnen afhandelen! 🚀

Updated on februari 6, 2025
2.5 Python Functies: Definities, Parameters en Terugkeerwaarden
Inhoudsopgave
  • Wat is foutafhandeling?
  • De bouwstenen van foutafhandeling
    • 1. Try en Except
    • 2. Else
    • 3. Finally
  • Meerdere Except-blokken
  • Fouten hergebruiken met Exception
  • Praktische voorbeelden
  • Veelvoorkomende fouten en tips
  • Samenvatting
Programmeren in Python

Leer python op je eigen tempo met mooie interactieve hedendaagse voorbeelden.

© Copyright 2025 Programmeren in Python.
Sign inSign up

Sign in

Don’t have an account? Sign up
Lost your password?

Sign up

Already have an account? Sign in