1
respuesta

[Duda] ¿Qué pasa con fim do metodo2 y 1?

public class Flujo {

  public static void main(String[] args) {
    System.out.println("Ini do main");
    try {
        metodo1();
    } catch(ArithmeticException | NullPointerException ex) {
        String msg = ex.getMessage();
        System.out.println("Excepcion " + msg);
        ex.printStackTrace();
    }
    
    System.out.println("Fim do main");
  }
  public static void metodo1(){
    System.out.println("Ini do metodo1");
        metodo2();
    System.out.println("Fim do metodo1");
  }
  public static void metodo2(){
    System.out.println("Ini do metodo2");
    for(int i =1; i<= 5; i++){
      System.out.println(i);
      Cuenta c = null;
      c.depositar();
    }
    System.out.println("Fim do metodo2");
  }
}

La salida que obtengo es:

Ini do metodo1
Ini do metodo2
1
Excepcion null
java.lang.NullPointerException
    at Flujo.metodo2(Flujo.java:25)
    at Flujo.metodo1(Flujo.java:17)
    at Flujo.main(Flujo.java:6)
Fim do main

¿qué pasa con fim do metodo2 y fim do metodo1?

1 respuesta

Hola Santiago, espero que estés bien!

Como el objeto Cuenta es nulo, al intentar ejecutar el método depositar él señala la excepción referente a objetos/variables nulas (NullPointerException).

Y como esta ejecución falla antes del final del método 2, se produce el disparo de la excepción y el resto del código no se ejecuta porque el foco está en la excepción.

Como el método 1 utiliza una llamada al método 2, lo mismo ocurre considerando que la excepción es disparada en el método 2.

Mucho éxito en todo lo que te propongas y si tienes alguna duda aquí estaremos para apoyarte. ¡Un saludo!

¡Vamos juntos!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!