Diferencias entre Excepciones Checked y Unchecked en Java
Clase 22 de 31 • Curso 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.