Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: try: en finally: in python  (gelezen 1475 keer)

try: en finally: in python
« Gepost op: 2017/05/16, 16:49:08 »
Wat is eigenlijk het nut van try: en finally:  in een python programma. (zie attachment)

Kan ik die niet net zo goed  weglaten?
Miscere utile dulci. (Ter leering ende vermaeck)
http://henk.oegema.com  (Op RaspberryPi2)
Registered linux user 520520.  In gebruik: Ubuntu  22.04.4 Hobby's: Radio Amateur callsign: PA2HO.  Interesses: Raspberry Pi & Arduino & Jetson Nano (voor AI & ML)

Re: try: en finally: in python
« Reactie #1 Gepost op: 2017/05/16, 19:50:55 »
Citaat
A 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.html

Try, 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.

« Laatst bewerkt op: 2017/05/16, 19:54:38 door erik1984 »

Re: try: en finally: in python
« Reactie #2 Gepost op: 2017/05/16, 21:00:14 »
Citaat
A 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.html

Try, 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.

Duidelijk.    :)
Miscere utile dulci. (Ter leering ende vermaeck)
http://henk.oegema.com  (Op RaspberryPi2)
Registered linux user 520520.  In gebruik: Ubuntu  22.04.4 Hobby's: Radio Amateur callsign: PA2HO.  Interesses: Raspberry Pi & Arduino & Jetson Nano (voor AI & ML)