Quiz sobre Java

Para todos los fans de Java ¿Qué es lo que pasa con las siguientes porciones código? ¿por qué?

java:
public class A
{
        public static void main(String args[])
        {
                int y;
                try
                {
                        y = 0 / 0;
                }
                catch (Exception ex)
                {
                        y = 0 / 0;
                }
                finally
                {
                        System.out.println("Finally");
                }       
        }
}
java:
public class A
{
        public static void main(String args[])
        {
                double y;
                try
                {
                        y = 0 / 0;
                }
                catch (Exception ex)
                {
                        y = 0 / (float) 0;

                }
                finally
                {
                        System.out.println("Finally");
                }       
        }
}

Posibles respuestas

  • Lanza una excepción del tipo ArithmeticException.
  • Lanza una excepción del tipo ArithmeticException y escribe "Finally"
  • Escribe "Finally" y lanza una excepción del tipo ArithmeticException.
  • Sólo escribe "Finally"

2 Replies to “Quiz sobre Java”

  1. El primer código escribe Finally y lanza una excepción. Viene a pasar algo así se generera una excepción con la división del try. Está se atiende en el catch pero al ser la misma instrucción se genera otra excepción. Y antes de ser atendida se ejecuta el finally escribiendo "Finally". Luego se atiende la excepción que se generó en el catch.

    El segundo código escribe Finally. Dentro del try esa división es de enteros por lo que produce una excepción. La cuál es capturada en el catch pero aquí la división es algo distinta estamos dividiendo números en coma flotante. El resultado de esta división no generá excepción alguna y deja "y" con un valor de "NAN" (no-número). Y acaba entrando en el bloque finally para escribir "Finally".

Comments are closed.