Diferencias entre Excepciones Checked y Unchecked en Java
Clase 22 de 31 • Curso de Java
Contenido del curso
- 10

Atributos y métodos estáticos en clases utilitarias de Java
08:43 - 11

Constantes en Java: inmutabilidad con static final
04:08 - 12

Constructores en Java para inicializar objetos con datos
08:10 - 13

Gestión de memoria en Java: stack, heap y garbage collector
07:04 - 14

Encapsulamiento en Java: Atributos privados y métodos getter y setter
09:26 - 15

Operaciones básicas con listas en Java: agregar, eliminar y recorrer
11:12 - 16

Relaciones entre clases en Java: asociación, agregación y composición
03:45 - 17

Implementación de menús interactivos con while y switch en Java
11:38 - 18

Búsqueda y eliminación de elementos en listas de Java
09:20 quiz de Construcción de clases y modelado de objetos
- 19

Streams y lambdas para filtrar listas en Java
11:55 - 20

Transformación y ordenamiento de listas con streams en Java
11:49 - 21

Validación de entrada con enums en Java
11:56 - 22

Diferencias entre Excepciones Checked y Unchecked en Java
08:16 - 23

Records para simplificar código inmutable en Java
07:00 - 24

Mapas en Java para contar visualizaciones de películas
09:47 - 25

Lectura de archivos planos y conversión a objetos en Java
13:48 - 26

Escritura de archivos planos con la API moderna de Java
09:50 quiz de Estructuras de datos y Java moderno
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
PeliculaExistenteException, 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 PeliculaExistenteException 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 PeliculaExistenteException 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
PeliculaExistenteExceptiony 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.