Python Academy · Les

Uitzonderingen begrijpen

Leer wat uitzonderingen zijn en hoe Python ze genereert.

Les 1 van 414 stappen

Uitzonderingen begrijpen is een gratis Python Academy-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Python Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Python Academy bevat in totaal 4 lessen.

Inleiding

Uitzonderingen zijn het mechanisme van Python om fouten tijdens de uitvoering te signaleren en af te handelen.

Wat is een uitzondering?

Een uitzondering is een gebeurtenis die de normale programmastroom onderbreekt. Python genereert uitzonderingen wanneer er fouten optreden — bijvoorbeeld bij delen door nul.
# 1 / 0  # raises ZeroDivisionError
print('exceptions demo')

Uitzonderingshiërarchie

Alle uitzonderingen erven van BaseException. De meeste uitzonderingen waarmee gebruikers te maken krijgen, erven van Exception. Specifieke typen zijn ValueError, TypeError, KeyError enzovoort.
print(issubclass(ValueError, Exception))
print(issubclass(Exception, BaseException))

Veelgebruikte ingebouwde uitzonderingen

TypeError: verkeerd type. ValueError: juist type, verkeerde waarde. KeyError: woordenboeksleutel ontbreekt. IndexError: lijstindex buiten bereik. AttributeError: zo'n attribuut bestaat niet.
# Examples:
# int('abc')       -> ValueError
# d['missing']     -> KeyError
# [1,2][9]         -> IndexError
print('common exceptions')

De traceback

Wanneer een uitzondering niet wordt afgehandeld, drukt Python een traceback af: de aanroepstack van onderaan (meest recent) naar bovenaan. Leer die te lezen.
def f(): return 1/0
# f()  # shows traceback
print('traceback demo')

Uitzonderingsobject

Elke uitzondering bevat een bericht. str(e) of e.args geeft de beschrijving. Je krijgt er in except toegang toe met: except ValueError as e.
try:
    int('abc')
except ValueError as e:
    print(type(e).__name__, e)

Meerdere typen opvangen

except (TypeError, ValueError): vangt beide typen op in één clausule.
def parse(x):
    try:
        return int(x)
    except (TypeError, ValueError):
        return None
print(parse('abc'), parse(None))

De ExceptionGroup (3.11+)

Python 3.11 voegt ExceptionGroup toe voor meerdere gelijktijdige uitzonderingen, die je afhandelt met de syntaxis except*.
# Python 3.11+:
# try: ...
# except* ValueError as eg:
#     print(eg.exceptions)
print('exception group demo')

Waarschuwingen versus uitzonderingen

import warnings; warnings.warn('msg') geeft een waarschuwing zonder een uitzondering te genereren. Gebruik dit voor verouderingsmeldingen en niet-fatale fouten.
import warnings
warnings.warn('This is deprecated', DeprecationWarning)
print('warning issued')

sys.exc_info()

Binnen een except-blok retourneert sys.exc_info() (type, value, traceback) — handig om volledige details van een uitzondering te loggen.
import sys
try:
    1/0
except:
    exc_type, exc_val, _ = sys.exc_info()
    print(exc_type, exc_val)

Uitzonderingen koppelen

raise NewError('msg') from original koppelt uitzonderingen aan elkaar. Het attribuut __cause__ legt de koppeling vast.
try:
    int('abc')
except ValueError as e:
    raise RuntimeError('parse failed') from e

Korte controle

Welke uitzondering wordt gegenereerd wanneer je een woordenboek benadert met een sleutel die niet bestaat?

Samenvatting

Uitzonderingen erven van BaseException. Lees tracebacks van onder naar boven. Vang ze op met except as e. Veelvoorkomende typen zijn ValueError, TypeError, KeyError, IndexError en AttributeError.

Ga door

Goed gedaan! Ga door naar de volgende les om verder te komen.
Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
76
Lessen
320

Veelgestelde vragen

Is de les “Uitzonderingen begrijpen” gratis?

Ja — de volledige tekst van “Uitzonderingen begrijpen” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Python Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Python Academy bevat in totaal 4 lessen.

Wat leer ik in “Uitzonderingen begrijpen”?

Leer wat uitzonderingen zijn en hoe Python ze genereert. Je oefent met Python Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Python Academy te beginnen?

Ervaring vooraf is niet nodig. Python Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “Uitzonderingen begrijpen”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Python Academy?

Ja. Elke les over Python Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Uitzonderingen begrijpen
  2. try / except / else / finally
  3. Uitzonderingen genereren en opnieuw genereren
  4. Aangepaste uitzonderingsklassen
← Terug naar Python Academy