El finally se ejecuta siempre al final y por eso sera el que retorne el valor. Esa es la respuesta para el examen.
La respuesta para el dia a dia es que poner un return en un finally puede dar lugar a resultados inesperados, por lo que JAMAS debes retornar desde un finally. De hecho hasta el compilador te da un warning, creo.
Un saludo
en un try-catch el finally se ejecutaría siempre que no existieses un exit
try{
System.exit(-1);
}finally{
System.out.println("Esto no se imprime nunca");
}
Otro caso sería
try{
thow new IOException();
}catch(IOException e){
throw e;
}finally{
throw new RuntimeException();
}
En este caso, el catch captura la excepción y la vuelve a lanzar, puesto que esa excepción no está controlada en el catch, debe lanzar la excepción hacía arriba, para ello debe de salir del bloque try-catch-finally. En este caso, ejecuta el finally, y este encuentra una nueva excepción que lanzar, por lo que en la "pila de excepciones" la pone justo arriba, y es la que se propaga
Hola a todos,
Estoy estudiando para el examen de certificación 1Z0-803 (Java 7 Assocciate), utilizo el simulador Enthuware, el cual leí en un foro que lo recomendaban por su calidad precio.
(El libro ya me lo leí y preparé resúmenes)
Me gustaría preguntarles acerca el nivel del examen, en ese emulador veo muchas preguntas las cuales no son ninguna broma... No son preguntas comunes de lenguaje, son preguntas que exigen que te sepas por ej que pasa al lanzarse una excepción si pones un return en un catch y otro en el final... ¿Cual de ellos tiene preferencia? El del catch se ejecuta antes pero finalmente la respuesta correcta es el del final...
Alguien me puede orientar en cuanto a ese tipo de preguntas extrañas si aparecen en el examen etc... ??? Me podéis dar algunos ejemplos de las preguntas mas difíciles que pueden poner en el examen ???
Un saludo y muchísimas gracias de antemano.