¿Porqué quieres capturar la excepción dentro del finally?
El finally te asegura que la ejecución de código pasará por allí, aunque antes se produzcan errores, de esa forma si pones el código de "cerrar todo" (por ejemplo) , te asegurarás de que se ejecuta.
¿Porqué poner el except en una parte del código que se ejecuta siempre, si no quieres que el except se ejecute siempre (sólo cuando hay errores)? No digo que falle, pero no le veo sentido.
