Leerdoelen
- Fouten en hoe ermee om te gaan
Syntax errors - wat zijn het?
- We hebben al enkele fout-meldingen voorbij zien komen
- Dit waren voornamelijk syntactische fouten - fouten in de syntax
- Syntax: regels waaraan de code moet voldoen
- Vergeten dubbele punt (:)
- Typefouten in opdrachten
Syntax errors - wat te doen?
Runtime errors - wat zijn het?
- Fouten tijdens het gebruik van de software
- Kunnen ontstaan door verkeerde invoer
- Een letter waar een getal wordt gevraagd
- Doordat een programma op een waarde komt die niet voorzien was
- Een List positie die niet bestaat
- Delen door 0 omdat de deler 0 is geworden
Runtime errors - wat te doen?
- Zijn vaak lastig te voorzien
- Je moet elke mogelijke situatie afwegen
- Afvangen met try en except
Terminologie
- Runtime errors noemen we exceptions
- Een error is raised door de runtime engine (python)
- Een exception kan worden afgevangen (catched)
Try / Except
while True:
try:
x = int(input("Geef een nummer op: "))
break
except ValueError:
print("Dat was geen nummer.")
print(f"De ingevoerde waarde is: {x}")
- while True - oneindige loop
- try - de code die uitgevoerd moet worden
- break - als er geen fouten zijn
- except - afvangen van bekende exceptions
Welke exceptions zijn er?
Meerdere runtime tests
while True:
try:
x = int(input("Geef een nummer op: "))
resultaat = 10 / x
break
except ValueError:
print("Dat was geen nummer, probeer het nog een keer.")
except ZeroDivisionError:
print("Delen door nul is niet toegestaan.")
print("Resultaat is: ", resultaat)
Onbekende error afvangen
while True:
try:
x = int(input("Geef een nummer op: "))
resultaat = 10 / x
break
except ValueError:
print("Dat was geen nummer, probeer het nog een keer.")
except ZeroDivisionError:
print("Delen door nul is niet toegestaan.")
except Exception as error:
print("Er is iets fout gegaan. Het systeem meldde: ", error)
print("Resultaat is: ", resultaat)
Samenvatting
- We hebben geleerd dat er 2 soorten errors zijn:
- Syntax errors - type fouten
- Runtime errors - fouten tijdens de werking
- We kunnen met Try/Except runtime errors afvangen