logo

Manejo de excepciones en Java

  1. Manejo de excepciones
  2. Ventaja del manejo de excepciones
  3. Jerarquía de clases de excepción
  4. Tipos de excepción
  5. Ejemplo de excepción
  6. Escenarios donde puede ocurrir una excepción

El Manejo de excepciones en Java es uno de los poderosos Mecanismo para manejar los errores de tiempo de ejecución. para que se pueda mantener el flujo normal de la aplicación.

En este tutorial, aprenderemos sobre las excepciones de Java, sus tipos y la diferencia entre excepciones marcadas y no marcadas.

comprobación nula en java

¿Qué es la excepción en Java?

Significado del diccionario: La excepción es una condición anormal.

En Java, una excepción es un evento que interrumpe el flujo normal del programa. Es un objeto que se lanza en tiempo de ejecución.

¿Qué es el manejo de excepciones?

El manejo de excepciones es un mecanismo para manejar errores de tiempo de ejecución como ClassNotFoundException, IOException, SQLException, RemoteException, etc.

Ventaja del manejo de excepciones

La principal ventaja del manejo de excepciones es para mantener el flujo normal de la aplicación . Una excepción normalmente interrumpe el flujo normal de la aplicación; es por eso que necesitamos manejar excepciones. Consideremos un escenario:

 statement 1; statement 2; statement 3; statement 4; statement 5;//exception occurs statement 6; statement 7; statement 8; statement 9; statement 10; 

Supongamos que hay 10 declaraciones en un programa Java y se produce una excepción en la declaración 5; el resto del código no se ejecutará, es decir, no se ejecutarán las declaraciones 6 a 10. Sin embargo, cuando realicemos un manejo de excepciones, el resto de declaraciones se ejecutarán. Es por eso que utilizamos el manejo de excepciones en Java .

¿Sabes?
  • ¿Cuál es la diferencia entre excepciones marcadas y no marcadas?
  • ¿Qué sucede detrás del código int data=50/0;?
  • ¿Por qué utilizar múltiples bloques de captura?
  • ¿Existe alguna posibilidad cuando el bloque finalmente no se ejecuta?
  • ¿Qué es la propagación de excepciones?
  • ¿Cuál es la diferencia entre la palabra clave throw y throws?
  • ¿Cuáles son las 4 reglas para utilizar el manejo de excepciones con anulación de métodos?

Jerarquía de clases de excepción de Java

La clase java.lang.Throwable es la clase raíz de la jerarquía de excepciones de Java heredada por dos subclases: Excepción y Error. La jerarquía de las clases de excepción de Java se detalla a continuación:

jerarquía de manejo de excepciones

Tipos de excepciones de Java

Existen principalmente dos tipos de excepciones: marcadas y no marcadas. Un error se considera una excepción no comprobada. Sin embargo, según Oracle, existen tres tipos de excepciones, a saber:

  1. Excepción marcada
  2. Excepción no marcada
  3. Error
jerarquía de manejo de excepciones

Diferencia entre excepciones marcadas y no marcadas

1) Excepción marcada

Las clases que heredan directamente la clase Throwable, excepto RuntimeException y Error, se conocen como excepciones marcadas. Por ejemplo, IOException, SQLException, etc. Las excepciones marcadas se verifican en tiempo de compilación.

2) Excepción no marcada

Las clases que heredan RuntimeException se conocen como excepciones no comprobadas. Por ejemplo, ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException, etc. Las excepciones no verificadas no se verifican en tiempo de compilación, pero sí en tiempo de ejecución.

3) errores

El error es irrecuperable. Algunos ejemplos de errores son OutOfMemoryError, VirtualMachineError, AssertionError, etc.

Palabras clave de excepción de Java

Java proporciona cinco palabras clave que se utilizan para manejar la excepción. La siguiente tabla describe cada uno.

Palabra claveDescripción
intentarLa palabra clave 'try' se usa para especificar un bloque donde debemos colocar un código de excepción. Significa que no podemos usar el bloque try solo. El bloque try debe ir seguido de catch o finalmente.
atraparEl bloque 'catch' se utiliza para manejar la excepción. Debe estar precedido por el bloque try, lo que significa que no podemos usar el bloque catch solo. Puede ser seguido por finalmente bloquear más tarde.
finalmenteEl bloque 'finalmente' se utiliza para ejecutar el código necesario del programa. Se ejecuta independientemente de que se maneje o no una excepción.
tirarLa palabra clave 'lanzar' se utiliza para generar una excepción.
lanzaLa palabra clave 'throws' se utiliza para declarar excepciones. Especifica que puede ocurrir una excepción en el método. No arroja una excepción. Siempre se usa con la firma del método.

Ejemplo de manejo de excepciones de Java

Veamos un ejemplo de manejo de excepciones de Java en el que usamos una declaración try-catch para manejar la excepción.

JavaExceptionExample.java

 public class JavaExceptionExample{ public static void main(String args[]){ try{ //code that may raise exception int data=100/0; }catch(ArithmeticException e){System.out.println(e);} //rest code of the program System.out.println('rest of the code...'); } } 
Pruébalo ahora

Producción:

 Exception in thread main java.lang.ArithmeticException:/ by zero rest of the code... 

En el ejemplo anterior, 100/0 genera una ArithmeticException que es manejada por un bloque try-catch.

Escenarios comunes de excepciones de Java

Se dan algunos escenarios en los que pueden ocurrir excepciones no controladas. Son los siguientes:

1) Un escenario donde ocurre ArithmeticException

Si dividimos cualquier número por cero, se produce una excepción aritmética.

 int a=50/0;//ArithmeticException 

2) Un escenario donde ocurre NullPointerException

Si tenemos un valor nulo en cualquier variable , al realizar cualquier operación en la variable se genera una excepción NullPointerException.

 String s=null; System.out.println(s.length());//NullPointerException 

3) Un escenario donde ocurre NumberFormatException

Si el formato de cualquier variable o número no coincide, puede producirse una excepción NumberFormatException. Supongamos que tenemos un cadena variable que tiene caracteres; convertir esta variable en dígitos provocará NumberFormatException.

 String s='abc'; int i=Integer.parseInt(s);//NumberFormatException 

4) Un escenario en el que se produce ArrayIndexOutOfBoundsException

Cuando una matriz excede su tamaño, se produce la excepción ArrayIndexOutOfBoundsException. Puede haber otras razones para que se produzca ArrayIndexOutOfBoundsException. Considere las siguientes declaraciones.

 int a[]=new int[5]; a[10]=50; //ArrayIndexOutOfBoundsException 

Índice de excepciones de Java

  1. Bloque de prueba-catch de Java
  2. Bloque de captura múltiple de Java
  3. Prueba anidada de Java
  4. Java finalmente bloquea
  5. Palabra clave de lanzamiento de Java
  6. Propagación de excepciones de Java
  7. Java arroja palabras clave
  8. Lanzamiento de Java frente a lanzamientos
  9. Java Final vs Finalmente vs Finalizar
  10. Manejo de excepciones de Java con anulación de métodos
  11. Excepciones personalizadas de Java