Diferencia entre Throw vs Throws en Java

Una excepción es un evento que ocurre durante la ejecución de un programa en Java que básicamente está obstaculizando la ejecución general del código. A veces, el sistema maneja la excepción por defecto, pero en algunos casos, necesitamos manejar la excepción en función de nuestro código o situaciones explícitamente. La entrega de excepciones de manera personalizada se puede manejar usando: try, catch, throw, throws y finalmente palabras clave. Cuando queramos definir excepciones dentro de nuestro código, usaremos throw, mientras que cuando queramos definir múltiples excepciones explícitamente, usaremos throws. En este tema, discutiremos las comparaciones entre lanzamiento y lanzamiento

¿Qué es tirar?

Cuando queramos manejar cualquier excepción en nuestro código que no esté marcada, usaremos throw. Se puede usar un lanzamiento dentro de nuestro código para manejar excepciones de manera explícita. Recuerde, solo podemos manejar un tipo de excepción a la vez usando throw. Si desea usar el lanzamiento múltiple, debe usar el lanzamiento tantas veces.

Sintaxis:

throw

Ejemplo:

throw new ArithmeticException();

Esas instancias de excepción deben estar en una subclase llamada Throwable. Esto se debe a que Throwable tiene su subclase llamada Excepción y, bajo la clase de excepción, residen todas las clases de excepción definidas por el usuario. Por lo tanto, asegúrese de utilizar instancias de excepción que son subclases bajo la línea de arrojable

Ahora, comprendamos el flujo del programa cuando lo usamos para lanzar. El código fluirá hasta que alcance el lanzamiento y después de esto, buscará el bloque try-catch. El bloque try se examina para verificar si hay alguna declaración dentro del bloque catch que mencione una excepción similar a la ocurrencia. En caso afirmativo, el control se mueve a eso. Si no, buscará el siguiente bloque try-catch y esto continúa. Supongamos que no encuentra ningún bloque try-catch para manejar una excepción, entonces el sistema manejará la excepción usando el manejador de excepción predeterminado y el código terminará.

¿Qué es tiros?

Cuando suponemos que un método puede mostrar algunas excepciones en nuestro código en función de la experiencia, mencionamos todas las excepciones en la firma del método utilizando la palabra clave throws. Todas las excepciones se mencionarán separadas por comas.

Sintaxis:

() throws,

Ejemplo:

void ExceptionExample() throws ArithmeticException, NullPointerException
(
//code
)

Como tiene una idea de lo que hacen los lanzamientos y lanzamientos, echemos un vistazo a las diferencias entre lanzamientos y lanzamientos de la siguiente manera:

Comparación cabeza a cabeza entre tiro contra tiro (infografía)

A continuación se muestran las 5 principales diferencias entre Throw vs Throws en Java

Diferencias clave entre Throw vs Throws

Veamos las diferencias clave entre Throw vs Throws en java de la siguiente manera:

  • Cuando queramos definir una excepción dentro de nuestro código, usaremos throw. Pero, cuando queremos definir excepciones explícitamente, usaremos throws.
  • Si usamos throw, el código no puede fluir en caso de excepciones marcadas. Cuando se marcan las excepciones, puede fluir usando tiros
  • En cuanto a la sintaxis, escribimos una variable para la instancia después del lanzamiento. Mientras que, escribimos clases de excepción separadas por comas después de los lanzamientos
  • Usamos throw bajo una definición de método. Mientras que, declaramos arroja excepción en la firma de un método.
  • Throw tiene la limitación de manejar la única excepción a la vez. Por otro lado, Throws puede manejar múltiples excepciones.

Tabla de comparación de lanzamiento versus lanzamiento

Analicemos la comparación principal entre Throw vs Throws en Java

Base de comparación entre Throw vs Throws

Lanzar

Arroja

Cómo o cuándo usarEn esos casos, cuando necesitamos proporcionar una excepción lógica dentro del código, en esos casos, generalmente, usamos la palabra clave throw debajo de una función.

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw

En esos casos, cuando la declaración de una función puede resultar en una excepción, nosotros, en esos casos, generalmente, usamos la palabra clave throws con una función para manejar esas excepciones.

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw new NullPointerException ();
)

Sobre la base del recuento de excepcionesEn un solo punto de tiempo, el lanzamiento se puede usar para lanzar solo una excepción. Cuando necesitemos lanzar una excepción particular, usaremos throw.

Por ejemplo:

// throw only a particular exception
throw new NullPointerException ();

Los lanzamientos pueden manejar múltiples excepciones. Cuando necesitamos manejar múltiples excepciones, podemos usar throws, donde el nombre de las excepciones se menciona con una coma separada. Cuando ocurra alguna excepción, coincidirá automáticamente con las excepciones declaradas con lanzamientos y se manejará en consecuencia.

Por ejemplo:

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw new NullPointerException ();
)

En la perspectiva de la sintaxisUsamos throw dentro de una función y para manejar un solo tipo de excepción

Por ejemplo:

// throw only a particular exception
throw new NullPointerException ();

Usaremos throw con una función para manejar múltiples excepciones de una vez usando el nombre de esas clases de excepción.

Por ejemplo:

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw new NullPointerException ();
)

Perspectiva marcada / sin marcarLas excepciones marcadas no pueden ser manejadas por lanzamiento. Solo puede manejar excepciones no verificadas que no pueden ser manejadas por lanzamientos o excepciones marcadas.

Por ejemplo:

void ExceptionExample() throws ArithmeticException,
NullPointerException
(
throw new NullPointerException (); //null pointer was not checked
, hence we used in throw
)

Cuando sepamos la excepción a priori y mencionemos los lanzamientos, se convertirán en excepciones marcadas.

Por ejemplo:

void ExceptionExample() throws ArithmeticException,
NullPointerException //explicit checked exceptions
(
//other code
)

Ejemplo de códigoLanzar:

public class ExceptionExample (
public static void main(String() args)
(
// Use of checked Exception by throw
try (
double num=1/0;
throw new ArithmeticException();
)
catch (ArithmeticException e)
(
e.printStackTrace();
)
)
)

Lanza

import java.io.IOException;
public class ExceptionExample (
public static void main(String() args)
throws ArithmeticException //here we use unchecked
exception by throws
(
double num=1/0;
System.out.println (num);
)
)

Conclusión

Estas son diferencias entre lanzamiento y lanzamiento en Java. Los lanzamientos pueden darte la libertad de usar múltiples excepciones de una vez, pero el lanzamiento no puede. Principalmente basado en esta distinción, debe usar throws si necesita proporcionar múltiples excepciones de una vez si no está seguro, simplemente use throw para poner excepciones una por una.

Artículos recomendados

Esta es una guía de Throw vs Throws en Java. Aquí discutimos las diferencias entre los lanzamientos y los lanzamientos en Java con infografías y tablas de comparación. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. Lista Java vs Lista de matrices
  2. JavaScript vs VBScript
  3. PHP vs JavaScript
  4. C vs Java