# Hoe voorkom ik dat mijn programma rare dingen doet als in plaats van een getal een letter wordt ingetypt? Als je in Python programma een getal inleest met `input`, dan wordt dit getal ingelezen als een string (tekst). Er gebeuren vreemde dingen als je een string, die geen getal bevat, probeert om te zetten naar een integer (met behulp van de functie `int`). ```python getal = int(input('Geef een geheel getal: ')) print('Eentje meer is', getal + 1) ``` Als je dit programma uitvoert en als invoer het getal `14` intypt dan verschijnt de volgende uitvoer: ```none Geef een geheel getal: 14 Eentje meer is 15 ``` Als je dit programma uitvoert en als invoer het woord `Hallo` intypt dan verschijnt de volgende uitvoer: ```none Geef een geheel getal: Hallo Traceback (most recent call last): File "...\input_int_problem.py", line 1, in getal = int(input('Geef een geheel getal: ')) ValueError: invalid literal for int() with base 10: 'Hallo' ``` ## Oplossing ## Deze fout kun je vrij eenvoudig afvangen door de exception die de functie `int` opwekt bij een fout af te vangen. Zie voor meer informatie de [Python Tutorial](https://docs.python.org/3/tutorial/errors.html). ```python while True: try: getal = int(input('Geef een geheel getal: ')) break except ValueError: print('Error: dat was geen geheel getal. Probeer het opnieuw.') print('Eentje meer is', getal + 1) ``` Als je dit programma uitvoert en als invoer het woord `Hallo` en daarna de waarde `14` intypt dan verschijnt de volgende uitvoer: ```none Geef een geheel getal: Hallo Error: dat was geen geheel getal. Probeer het opnieuw. Geef een geheel getal: 14 Eentje meer is 15 ```