Gracias por el puntero a los documentos. No pude pasar el 'retorno verdadero' para siquiera pensar en buscar allí.
de la documentación lee:
Si finalmente está presente, especifica un manejador ‘limpieza’. La cláusula try es ejecutada, ...
lo que sugiere que se ejecuta la vuelta al Verdadero. Sin embargo, esto se aclaró más tarde:
Cuando una devolución, romper o continuar sentencia se ejecuta en la suite intento de una declaración tratar ... Por último, el finalmente también se ejecuta la cláusula 'en el camino out. '
Lo que explica el comportamiento observado.
¿Qué tipo de mente pensaría en un código como este en primer lugar? ;)
Aunque no es exactamente lo mismo, se puede encontrar una buena discusión de esto aquí: http://stackoverflow.com/questions/1611561/python-error-handling-with-try-finally – dave
-1: did ni siquiera intentes buscar la declaración final en http://docs.python.org/reference/compound_stmts.html#the-try-statement –