essayer / autre, avec le retour dans le bloc try

Je suis tombé sur un étrange comportement en python. Je ne pouvais pas trouver d'informations à ce sujet dans le python ou sur SOI si elle est ici:

def divide(x, y):
    print 'entering divide'
    try:
        return x/y
    except:
        print 'error'
    else:
        print 'no error'
    finally:
        print 'exit'

print divide(1, 1)
print divide(1, 0)

la sortie:

entering divide
exit
1
entering divide
error
exit
None

Il semble que python n'ira pas à l'intérieur de la else bloc si une valeur est retournée dans le try. Cependant, il sera toujours aller dans le finally bloc. Je ne comprends vraiment pas pourquoi. Quelqu'un peut-il m'aider avec cette logique?

grâce

InformationsquelleAutor Simon Bergot | 2011-09-16