Diferencias entre Excepciones Checked y Unchecked en Java

Clase 22 de 31Curso de Java

Resumen

Dominar el manejo de excepciones en Java ayuda a construir aplicaciones robustas, controlando posibles errores antes de que impacten al usuario o al sistema. Aquí verás cómo distinguir entre los diferentes tipos de excepciones y cómo crear una personalizada para controlar situaciones concretas, según lo explicado en el material.

¿Cuáles son los tipos de excepciones en Java y cómo se diferencian?

En Java, existen dos grandes tipos de excepciones:

  • Checked exceptions: Java obliga a controlarlas explícitamente usando try-catch. Ejemplos incluyen IO Exception, FileNotFoundException y ParseException, las cuales pueden ocurrir al leer archivos inexistentes o al interpretar datos incorrectos.
  • Unchecked exceptions: No es obligatorio manejarlas, pero pueden causar problemas en tiempo de ejecución si las ignoramos. Algunos ejemplos son NullPointerException, NumberFormatException, IndexOutOfBoundsException y la conocida IllegalArgumentException.

¿Cómo se crea una excepción personalizada en Java?

Para crear una excepción propia, debes:

  • Crear una nueva clase, en este ejemplo llamada PelículaExistenteException, dentro de un paquete específico para excepciones.
  • Hacer que extienda de RuntimeException, informando a Java que la excepción se lanzará en tiempo de ejecución.
  • Definir un constructor que reciba un mensaje útil, normalmente relacionado con el error, y pase ese mensaje a super, para usar la lógica de la clase base.

Esto facilita identificar y controlar situaciones muy concretas en tu aplicación, favoreciendo la claridad del código.

¿Dónde y cómo lanzar la excepción personalizada?

En el escenario explicado, la excepción PelículaExistenteException se lanza cuando un usuario intenta agregar una película ya existente:

  • Antes de añadir el contenido, se valida si ya hay una película con ese título usando un método de búsqueda.
  • Si se encuentra una coincidencia, se usa la palabra reservada throw seguida de new PelículaExistenteException para lanzar el error con el título encontrado.
  • El flujo del código se interrumpe tras throw, evitando que el método continúe y la película se agregue otra vez.

¿Cómo controlar la excepción y mejorar la experiencia de usuario?

Para que la aplicación no se detenga abruptamente al lanzar la excepción:

  • Se utiliza un bloque try-catch al intentar agregar la película.
  • El catch captura específicamente PelículaExistenteException y muestra el mensaje de error recibido, informando claramente al usuario.
  • Al controlar la excepción, el programa continúa funcionando, permitiendo más intentos de ingreso o búsquedas.

Esta técnica fomenta el manejo proactivo de errores y ayuda a evitar que los sistemas fallen sin explicación. Comentar dudas o compartir experiencias al respecto enriquece la comunidad de aprendizaje en Java y mejora la calidad de los proyectos.