Buscar
Social
Ofertas laborales ES
« 30 años de programas "Hola mundo" | Main | Excelente recopilación de información sobre Java EE 7 »
miércoles
jul102013

Unreachable code

Estoy preparándome para una certificación de Java, en concreto la OCPJP6. Estoy viendo cosas interesantes a las que yo antes no prestaba atencion pues Eclipse o el IDE que usemos nos previenen que ocurran. La certificacion esta llena de estos pequeños detalles, que fuera de ser triviales, se nos presentan en forma de breves snippets de código, como el siguiente:

public abstract class A26D{
  public abstract void start() throws ArithmeticException;
  public static void main(String args[]){
    A26D a=new A26D(){
      public void start() throws ArithmeticException{
        System.out.print(1);
        try{
          System.out.print(2);
          throw new ArithmeticException();
          System.out.print(3);
        }catch(Exception e){
          System.out.print(4);
        }finally{
          System.out.print(5);
        }
      }
    };
    a.start();
  }
}


Cual creéis que será el resultado de este programa?
a. 1245
b. 12
c. Error en ejecución
d. Error en compilación

 

PrintView Printer Friendly Version

EmailEmail Article to Friend

Reader Comments (9)

ese título te delata :P

julio 10, 2013 | Registered Commenterrobertiano

Sí, el título quizás no haya sido el más acertado ;) jejeje

Yo digo d

julio 10, 2013 | Registered CommenterAbraham

Vale, sin pistas en la próxima :)

julio 10, 2013 | Registered Commentersabate

Uhmmm. La a)

julio 11, 2013 | Registered Commenterdalcon

El compilador es muy listo!!! :D

julio 11, 2013 | Registered Commenterantuansoft

Bueno, tampoco es que el compilador sea tan listo; este código lo compila:
....
if(true) throw new ArithmeticException();
System.out.print(3);
...

julio 11, 2013 | Registered CommenterAbraham

Abraham, lo curioso es que si cambias el if (true) por un while (true) sí sale el aviso de unreachable statement... Tiene que ser un bug, a la fuerza...

julio 11, 2013 | Registered CommenterRamón Rial

Demonios como puede equivocarme pensé que era a
pero me olvide que el compilador se da cuenta que hay código que no puede ser ejecutado
:-(

julio 11, 2013 | Unregistered Commenterluis

Lo lamentable es que existan "certificaciones" con este tipo de preguntas-chorrada y que si apruebas te dan un bonito titulito en plan "Se mucho de eso que se llama Java", te lo dice alguien que ha dado clases de programación en la universidad, en su momento mis compañeros y yo teníamos claro que este tipo de evaluación de conocimientos tipo test no valía un pimiento respecto a lo importante: resolver problemas utilizando un lenguaje concreto.

Una certificación de este tipo sólo certifica que sabes "leer código Java" y ser capaz de reconocer casos límite-chorra que son más bien ejemplos de mala programación que otra cosa, pero no que sabes programar en Java.

Desde luego para mi una certificación basada en tests su valor es cercano a 0, pero no 0 así que te animo a que la hagas diga lo que yo diga, pues siempre habrá gente que admirará tus cualidades gracias a ese titulito (aunque no sea yo).

julio 14, 2013 | Registered Commenterjmarranz

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>