in

lanzar y lanzar en Java

gfg 200x200 min

lanzar

La palabra clave throw en Java se usa para lanzar explícitamente una excepción de un método o cualquier bloque de código. Podemos lanzar una excepción marcada o no marcada. La palabra clave throw se utiliza principalmente para lanzar excepciones personalizadas.

Sintaxis:

throw Instance
Example:
throw new ArithmeticException("/ by zero");

Pero esta excepción, es decir, Ejemplo debe ser de tipo Desechable o una subclase de Desechable. Por ejemplo, Exception es una subclase de Throwable y las excepciones definidas por el usuario generalmente extienden la clase Exception. A diferencia de C ++, los tipos de datos como int, char, floats o clases no arrojables no se pueden usar como excepciones.

El flujo de ejecución del programa se detiene inmediatamente después de que se ejecuta la instrucción throw y la más cercana tratar se comprueba el bloque para ver si tiene un captura declaración que coincide con el tipo de excepción. Si encuentra una coincidencia, el control se transfiere a esa declaración; de lo contrario, se adjunta a continuación. tratar el bloque está marcado y así sucesivamente. Si no coincide captura se encuentra, entonces el controlador de excepciones predeterminado detendrá el programa.

Java

class ThrowExcep

{

    static void fun()

    {

        try

        {

            throw new NullPointerException("demo");

        }

        catch(NullPointerException e)

        {

            System.out.println("Caught inside fun().");

            throw e;

        }

    }

    public static void main(String args[])

    {

        try

        {

            fun();

        }

        catch(NullPointerException e)

        {

            System.out.println("Caught in main.");

        }

    }

}

Producción:

Caught inside fun().
Caught in main.

Otro ejemplo:

Java

class Test

{

    public static void main(String[] args)

    {

        System.out.println(1/0);

    }

}

Producción:

Exception in thread "main" java.lang.ArithmeticException: / by zero

lanza

throws es una palabra clave en Java que se usa en la firma del método para indicar que este método podría lanzar una de las excepciones de tipo enumeradas. La persona que llama a estos métodos tiene que manejar la excepción usando un bloque try-catch.

Sintaxis:

type method_name(parameters) throws exception_list
exception_list is a comma separated list of all the 
exceptions which a method might throw.

En un programa, si existe la posibilidad de generar una excepción, el compilador siempre nos advierte al respecto y obligatoriamente debemos manejar esa excepción marcada, de lo contrario obtendremos un error de tiempo de compilación que dice la excepción no informada XXX debe ser detectada o declarada para ser lanzada. Para evitar este error de tiempo de compilación, podemos manejar la excepción de dos maneras:

  1. Al usar try catch
  2. Mediante el uso lanza palabra clave

Podemos usar la palabra clave throws para delegar la responsabilidad del manejo de excepciones a la persona que llama (puede ser un método o JVM), luego el método de la persona que llama es responsable de manejar esa excepción.

Java

class tst

{

    public static void main(String[] args)

    {

        Thread.sleep(10000);

        System.out.println("Hello Geeks");

    }

}

Producción:

error: unreported exception InterruptedException; must be caught or declared to be thrown

Explicación: En el programa anterior, estamos obteniendo un error de tiempo de compilación porque existe la posibilidad de una excepción si el hilo principal va a dormir, otros hilos tienen la oportunidad de ejecutar el método main () que causará InterruptedException.

Java

class tst

{

    public static void main(String[] args)throws InterruptedException

    {

        Thread.sleep(10000);

        System.out.println("Hello Geeks");

    }

}

Producción:

Hello Geeks

Explicación: En el programa anterior, al usar la palabra clave throws manejamos la InterruptedException y obtendremos el resultado como Hola geeks

Otro ejemplo:

Java

class ThrowsExecp

{

    static void fun() throws IllegalAccessException

    {

        System.out.println("Inside fun(). ");

        throw new IllegalAccessException("demo");

    }

    public static void main(String args[])

    {

        try

        {

            fun();

        }

        catch(IllegalAccessException e)

        {

            System.out.println("caught in main.");

        }

    }

}

Producción:

Inside fun().
caught in main.

Puntos importantes para recordar acerca de la palabra clave throws:

  • La palabra clave throws es necesaria solo para la excepción marcada y el uso de la palabra clave throws para la excepción no marcada no tiene sentido.
  • La palabra clave throws es necesaria solo para convencer al compilador y el uso de la palabra clave throws no evita la terminación anormal del programa.
  • Con la ayuda de la palabra clave throws podemos proporcionar información al llamador del método sobre la excepción.

Referencia: Java: la referencia completa de Herbert Schildt

Este artículo es una contribución de Pratik Agarwal y Bishal Dubey. Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando contrib.geeksforgeeks.org o envíe su artículo por correo electrónico a contrib@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema discutido anteriormente.

¡Atención lector! No dejes de aprender ahora. Hazte con todo lo importante Fundación Java y conceptos de colecciones con el Curso de Fundamentos de Java y Colecciones de Java a un precio asequible para los estudiantes y prepárese para la industria. Para completar su preparación desde el aprendizaje de un idioma hasta DS Algo y muchos más, consulte Curso completo de preparación para entrevistas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

apple touch icon@2

autenticación – ¿Cómo puedo «iniciar sesión» en git?

275px speedy car

Velocidad vs velocidad: diferencia y comparación