1
respuesta

[Duda] Throw duda

En este caso, no me queda claro donde tengo que lanzar "throws" Si lanzo el método1 igualmente me tirara error de compilación. (Ese "throw es por el try & catch") Y el segundo throw es por al lanzamiento de la excepción "Miexception"?

public class Flujo {

    public static void main(String[] args) {
        System.out.println("Inicio main");
        metodo1();
        System.out.println("Fin de main");
    }

    private static void metodo1() {
        System.out.println("Inicio de metodo1");
        try {
            metodo2();
        } catch(ArithmeticException | NullPointerException ex) {
            String msg = ex.getMessage();
            System.out.println("Exception " + msg);
            ex.printStackTrace();
        }
        System.out.println("Fin de metodo1");
    }

    private static void metodo2() {
        System.out.println("Inicio de metodo2");
        throw new Miexception("dio error");
        // System.out.println("Fin de metodo2");
    }


}
1 respuesta

Hola Kevin,

Las excepciones tiene 3 partes:

  1. Try: es el bloque de codigo que lanza la excepción
  2. Catch, es el bloque que gestiona la excepción
  3. Finally: es el bloque que se va ejecutar siempre, independientemente de que pase en try y catch.

Una excepción se debe lanzar donde el programa puede tener que gestionar un evento que impida el funcionamiento normal del programa.