Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

Me sale este error

Buena noche compañeros, me sale este erroren el ejercicio de excepciones try catch al ejecutar.

public class Flujo {

    private static Cuenta c;

    public static void main(String[] args) {
        System.out.println("Inicio del main");
        try {
            metodo1();
    } catch(ArithmeticException | NullPointerException ex) {
            String msg = ex.getMessage();
            System.out.println("Exception " + msg);
            ex.printStackTrace();
    }

    }

    private static void metodo1() {
        System.out.println("Inicio del metodo1");
        try {
            metodo2();
    } catch(ArithmeticException ex) {
            System.out.println("ArithmeticException");
    }


    }

    private static void metodo2() {
        System.out.println("Inicio del metodo2");
        for (int i = 1; i <= 5; i++) {
            System.out.println(i);
            Cuenta c = null;
            c.depositar();

            try {
                int a = i / 0;
            } catch (ArithmeticException ex) {
                System.out.println("ArithmeticException");
            }
        }

        System.out.println("Fin del metodo2");

    }

}

//----------------------------------------------------------------------------------------------

public class Cuenta {

    void depositar() {


    }

}


//--------------------------------------------------------

Exception Cannot invoke "Cuenta.depositar()" because "c" is null
java.lang.NullPointerException: Cannot invoke "Cuenta.depositar()" because "c" is null
    at Flujo.metodo2(Flujo.java:34)
    at Flujo.metodo1(Flujo.java:21)
    at Flujo.main(Flujo.java:9)
2 respuestas

Si c apunta a null no puedes acceder a ningun metodo ya que no apunta a ninguna direccion, creo que deberias modificar esa parte y mirar y cambiando eso desaparece ese error

Hola John Jairo si es la salida normal de que la excepcion ha sido procesada con exito se podria decir: +Al tu escribir esto en tu codigo: String msg = ex.getMessage(); System.out.println("Exception " + msg);

obtienes esta salida en la consola --> Exception Cannot invoke "Cuenta.depositar()" because "c" is null

+Y con la siguiente linea en tu codigo: ex.printStackTrace();

obtienes esta salida en la consola --> java.lang.NullPointerException: Cannot invoke "Cuenta.depositar()" because "c" is null at Flujo.metodo2(Flujo.java:34) at Flujo.metodo1(Flujo.java:21) at Flujo.main(Flujo.java:9)

espero haberme explicado bien compañero.