A finally clause is always executed before leaving the try statement, whether an exception has occurred or not.
CitaatA finally clause is always executed before leaving the try statement, whether an exception has occurred or not.bron: https://docs.python.org/3.4/tutorial/errors.htmlTry, except en finally zorgen ervoor dat je fouten die optreden binnen dat blok netjes kan afhanelen zonder dat de applicatie er 'uitklapt'. Met finally kun je nog opruimacties verrichten zoals in jouw voorbeeld. Deze actie wordt altijd uitgevoerd, dus ook als er een fout is opgetreden die je hebt afgevangen. Maar zelfs wanneer je geen fout hebt afgevangen maar er wel één optreedt (in dat geval wordt eers het finally-blok uitgevoerd en daarna alsnog de foutmelding naar boven gegooid). Zonder finally zou GPIO.cleanup() niet worden aangeroepen indien er een niet afgevangen fout optreedt in de code ervoor.