Diferencia entre lanzamiento y lanzamiento en Java

Autor: Laura McKinney
Fecha De Creación: 1 Abril 2021
Fecha De Actualización: 13 Mayo 2024
Anonim
Java y Javascript | Diferencias y Similitudes
Video: Java y Javascript | Diferencias y Similitudes

Contenido


El lanzamiento y los lanzamientos son las palabras clave utilizadas en el manejo de excepciones. los lanzar La palabra clave se utiliza para transferir manualmente la instancia de la excepción creada por el programador a la JVM. los tiros La palabra clave utilizada para transferir la responsabilidad de manejar la excepción ocurrió en el método al método de la persona que llama. La diferencia básica entre throw y throws es que la palabra clave throw usa el objeto de excepción, mientras que la palabra clave throws usa el nombre de las clases de excepción.

  1. Cuadro comparativo
  2. Definición
  3. Diferencias clave
  4. Conclusión

Cuadro comparativo

Bases de comparaciónlanzartiros
BASICLa palabra clave throw entrega nuestro objeto de excepción creado a JVM manualmente.La palabra clave throws se usa para delegar la responsabilidad del manejo de excepciones al llamador del método.
Sintaxislanzar Throwable-instance;return_type method_name (lista de parámetros) arroja ExceptionClass_list
{
// cuerpo del método
}
Seguido porLa palabra clave throw es seguida por un objeto de excepción.La palabra clave throws es seguida por la lista de las clases de excepción que pueden ocurrir en el método.
Número de excepciones lanzadasLa palabra clave throw puede lanzar una única instancia de excepción.La palabra clave throws puede declarar varias clases de excepción separadas por una coma.


Definición de tiro

La palabra clave "lanzar"Se utiliza para entregar nuestra instancia de excepción creada a la JVM (Máquina virtual Java) manualmente. Si "throw" no se usa para lanzar una instancia de excepción y la excepción ocurre, entonces el sistema de tiempo de ejecución lanza internamente la instancia de excepción a JVM y el programa finaliza de manera anormal. La forma general de la palabra clave throw es:

lanzar Throwable_instance;

Por encima de Throwable_instance debe haber un objeto de la clase Throwable. Los tipos primitivos como int, float o char y la instancia de clase no arrojable no se pueden lanzar usando la palabra clave throw.

Tomemos un ejemplo para entender la palabra clave throw.

Prueba de clase {Public static void main (String args) {throw new ArithmeticException ("/ by zero"); }}

En el código anterior, la palabra clave throw arroja una instancia de la clase Exception "ArithmeticException". Si la palabra clave throw no se hubiera utilizado entonces, el método main () habría creado internamente un objeto de excepción entregado a la JVM.


Los puntos a recordar acerca de la palabra clave throw:

  • Transfiere el objeto de excepción manualmente a la JVM.
  • Se utiliza mejor para las excepciones definidas por el usuario o las excepciones personalizadas.
  • Si la memoria no está asignada al objeto de excepción generado por la palabra clave throw, se produce una excepción de tiempo de ejecución, NullPointerException.
  • La palabra clave throw detiene la ejecución del programa inmediatamente después de su aparición. no podemos escribir directamente ninguna declaración después de la declaración de lanzamiento. Si escribimos cualquier declaración directamente después de la declaración throw, el compilador mostrará un error, una declaración inalcanzable durante la compilación.
  • Solo los objetos de la clase Throwable pueden lanzarse usando la palabra clave throw. Si el objeto lanzado no es un objeto de la clase Throwable, obtenemos un error de tiempo de compilación "Tipo incompatible encontrado. . requerido java.lang.Throwable ”

Nota:

La palabra clave throw se usa en C ++, JAVA, C # para lanzar manualmente una excepción.

Definición de tiros

Los "tiros"La palabra clave se utiliza para delegar la responsabilidad de manejar la excepción ocurrida en el método, a su método de llamada. El método de la persona que llama es responsable de manejar la excepción, puede ser cualquier otro método o JVM. Declara la lista de las clases de excepción que pueden ocurrir en el método.

El uso de la palabra clave throws convence al compilador de que la excepción ocurrida en el método debe ser manejada por el método de la persona que llama, por lo tanto, no se produce ningún error de compilación. Pero, el método de la persona que llama debe manejar la excepción o delegar la responsabilidad de manejar la excepción a su método de jerarquía. Cuando se produce la excepción de tiempo de ejecución, incluso después del uso de la palabra clave throws, no evita la finalización anormal del programa. Si el método de llamada es main (), la JVM por defecto maneja la excepción.

La forma general de la palabra clave throws es:

return_type method_name (lista de parámetros) arroja exceptionClass_list {// cuerpo del método}

Podemos ver que la palabra clave throws aparece después de la firma del método, y puede contener la lista de clases de excepción que pueden ocurrir en el método. La lista de las clases de excepción escritas después de los lanzamientos de palabras clave está separada por la coma.

Tomemos un ejemplo para comprender la palabra clave throws.

calss Test {public static void main (String args) lanza InterruptedException {thread sleep (10000); }}

En el código anterior, el subproceso principal se hace dormir durante algún tiempo utilizando el método sleep (). Ahora, cuando el método principal está en reposo, es posible que los otros hilos puedan interrumpir el hilo principal. Pero, la palabra clave throws se usa después de la firma del método main (), por lo que el programa se compilaría fácilmente. La palabra clave throws declara la clase de excepción marcada InterruptedException. Ahora, si cualquier otro subproceso interrumpe el subproceso principal durante el tiempo de ejecución, la palabra clave throws pasará esa excepción al llamador del método main (), que es JVM. La JVM terminaría el programa de manera anormal.

Los puntos a recordar sobre la palabra clave throws:

  • La palabra clave throws solo se usa para declarar las clases de excepción marcadas. El uso de la palabra clave throws para una excepción no verificada no tiene ningún impacto.
  • Si el método no quiere manejar la excepción por sí solo, delega esa excepción al método de la persona que llama utilizando esa palabra clave throws.
  • Su uso solo permite una compilación fluida del programa.
  • Si se produce una excepción en tiempo de ejecución, el programa finaliza de forma anormal, incluso después del uso de la palabra clave throws.
  • Se recomienda utilizar el bloque try / catch para la terminación normal del programa si se produce una excepción en tiempo de ejecución.

Nota:

La palabra clave se usa solo en Java. C ++ y C # no usan la palabra clave throws.

  1. El lanzamiento de la palabra clave, transfiere la responsabilidad del manejo de excepciones a JVM manualmente, mientras que, el lanzamiento de la palabra clave, transfiere la responsabilidad del manejo de excepciones al método de llamada del código donde se ha producido una excepción.
  2. La palabra clave throw es seguida por el objeto de excepción que entrega a la JVM. Por otro lado, la palabra clave throws es seguida por las clases de excepción que pueden ocurrir en el método.
  3. La palabra clave throw puede lanzar un único objeto de excepción a la vez, mientras que la palabra clave throws puede declarar múltiples clases de excepción separadas por una coma a la vez.

Conclusión:

La palabra clave throw se usa mejor para la excepción personalizada. El bloque try / catch es el mejor para manejar las excepciones en comparación con la palabra clave throws.