Consulte el siguiente código y explique el comportamiento de salida.Comportamiento de la declaración de devolución en catch y finalmente
public class MyFinalTest {
public int doMethod(){
try{
throw new Exception();
}
catch(Exception ex){
return 5;
}
finally{
return 10;
}
}
public static void main(String[] args) {
MyFinalTest testEx = new MyFinalTest();
int rVal = testEx.doMethod();
System.out.println("The return Val : "+rVal);
}
}
El resultado es el retorno Val: 10.
Eclipse muestra una advertencia: finally block does not complete normally
.
¿Qué sucede con la declaración de devolución en el bloque catch?
posible duplicado de [¿por qué el cambio de la variable devuelta en un fin de no bloquear cambiar el valor de retorno?] (http://stackoverflow.com/questions/ 16030858/why-does-changing-the-returned-variable-in-a-finally-block-not-change-the-return) – fglez
Una pregunta de entrevista muy popular. –