mercredi 29 janvier 2014

Try-except-finally paradox topic




I found something like this in a StackOverflow discussion.
>>> def paradox():

.... try:
.... raise Exception("Exception raised during try")
.... except:
.... print "Except after try"
.... return True
.... finally:
.... print "Finally"
.... return False
.... return None
....
>>> return_val = paradox()

Except after try
Finally
>>> return_val

False

I understand most of this.
What I don't understand is why this returns False rather than True. Does the finally short-circuit the return in the except block?





Aucun commentaire:

Enregistrer un commentaire