2
respuestas

¿Porque al instructor en la iteracion 3 cuando i ==3, atrapa en el catch ArithmeticException y NullPointerException, al mismo tiempo? No puedo atrapar los dos.

public class Flujo {
    public static void main(String[] args) {
      System.out.println("Inicio main");
      metodo1();
      System.out.println("Fin de main");
    }
    public static void metodo1(){
      System.out.println("Inicio de metodo 1");
      metodo2();
      System.out.println("fin de metodo 1");
    }
    public static void metodo2(){
      System.out.println("Inicio metodo 2");
      for(int i =1; i<= 5; i++){
        System.out.println(i);
        // try no existe sin cath
        try{ //intenta esto
          if (i == 3){
            int num = 0;
            int resultado = i/num;
            System.out.println(resultado);
          }
          String test = null;
          System.out.println(test.toString());
        }catch(ArithmeticException | NullPointerException exception){
          System.out.println("Atrapo excepcion");
          System.out.println(exception.getMessage());// Detalle del mensaje
          exception.printStackTrace();//nos da los que paso
        }    
      }
      System.out.println("Fin de metodo2");
    }
}
Inicio main
Inicio de metodo 1
Inicio metodo 2
1
Atrapo excepcion
Cannot invoke "String.toString()" because "test" is null
java.lang.NullPointerException: Cannot invoke "String.toString()" because "test" is null
        at Flujo.metodo2(Flujo.java:24)
        at Flujo.metodo1(Flujo.java:9)
        at Flujo.main(Flujo.java:4)
2
Atrapo excepcion
Cannot invoke "String.toString()" because "test" is null
java.lang.NullPointerException: Cannot invoke "String.toString()" because "test" is null
        at Flujo.metodo2(Flujo.java:24)
        at Flujo.metodo1(Flujo.java:9)
        at Flujo.main(Flujo.java:4)
3
Atrapo excepcion
/ by zero
java.lang.ArithmeticException: / by zero
        at Flujo.metodo2(Flujo.java:20)
        at Flujo.metodo1(Flujo.java:9)
        at Flujo.main(Flujo.java:4)
4
Atrapo excepcion
Cannot invoke "String.toString()" because "test" is null
java.lang.NullPointerException: Cannot invoke "String.toString()" because "test" is null
        at Flujo.metodo2(Flujo.java:24)
        at Flujo.metodo1(Flujo.java:9)
        at Flujo.main(Flujo.java:4)
5
Atrapo excepcion
Cannot invoke "String.toString()" because "test" is null
java.lang.NullPointerException: Cannot invoke "String.toString()" because "test" is null
        at Flujo.metodo2(Flujo.java:24)
        at Flujo.metodo1(Flujo.java:9)
        at Flujo.main(Flujo.java:4)
Fin de metodo2
fin de metodo 1
Fin de main
2 respuestas

Hola Eder, espero que estés bien.

Buena pregunta, al continuar el curso tu comprenderá mejor sobre las excepciones. Para resolver los errores puedes declarar un throws Excepction para el compilador verificar el tratamiento de error o también puedes utilizar un try/catch.

En general, las excepciones documenta el problema que está ocurriendo Y cambian el flujo de ejecución, es decir, impiden que el problema siga el flujo "normal" cuando ocurre algo excepcional. Hay buenas prácticas sobre el manejo de errores y diferentes formas de tratar esas excepciones.

Voy a dejar nuestro guion de estudios sobre manejo de errores en java, TechGuide.

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

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

Lograste que te salieran los dos errores?? A mi tampoc me salen los dos como en el video del instructor. Si lo lograste me avisas porfas!!!