Introducción
El manejo de excepciones es una técnica en programación que permite gestionar situaciones imprevistas o errores que ocurren durante la ejecución de un programa, garantizando que el programa no se detenga abruptamente y pueda manejar estos eventos de manera controlada.
Excepciones: Son eventos anómalos que interrumpen el flujo normal de ejecución de un programa.
Bloque try-catch: El bloque que permite manejar las excepciones, donde el código que puede generar una excepción se coloca dentro del bloque try, y el manejo de la excepción se realiza en el bloque catch.
Propagación de excepciones: Las excepciones pueden ser lanzadas (usando throw) y pueden ser propagadas a través de las pilas de llamadas hasta ser capturadas por un bloque catch.
Bloque try-catch en Java:
try {
// Código que puede generar una excepción
} catch (TipoDeExcepcion e) {
// Manejo de la excepción
}
2. Bloque try-catch con múltiples excepciones:
try {
// Código que puede generar una excepción
} catch (ExcepcionTipo1 e1) {
// Manejo de ExcepcionTipo1
} catch (ExcepcionTipo2 e2) {
// Manejo de ExcepcionTipo2
}
3. Bloque finally: El bloque finally se usa para ejecutar código que debe ejecutarse independientemente de si ocurre una excepción o no.
try {
// Código que puede generar una excepción
} catch (TipoDeExcepcion e) {
// Manejo de la excepción
} finally {
// Código que se ejecuta siempre
}
4. Lanzar excepciones (throw): El uso de throw permite lanzar una excepción personalizada o una existente de manera explícita.
throw new TipoDeExcepcion ("Mensaje de error");
5. Declaración de excepciones con throws: En métodos que pueden generar excepciones, se debe declarar con throws para indicar que el método puede lanzar ciertas excepciones.
public void miMetodo() throws TipoDeExcepcion {
// Código que puede generar una excepción
}
6. Excepciones personalizadas (Java): Se puede crear una excepción personalizada extendiendo la clase Exception.
public class MiExcepcion extends Exception {
public MiExcepcion(String mensaje) {
super(mensaje);
}
}
7. Captura de excepciones genéricas (Java): Se puede capturar excepciones más generales usando Exception como tipo de excepción.
try {
// Código que puede generar una excepción
} catch (Exception e) {
// Manejo de la excepción
}
Excepciones comprobadas vs no comprobadas:
Comprobadas (Checked Exceptions): Son aquellas que deben ser declaradas o manejadas dentro del código, como IOException o SQLException.
No comprobadas (Unchecked Exceptions): Son errores que pueden ocurrir en tiempo de ejecución y no necesitan ser declaradas, como NullPointerException o ArrayIndexOutOfBoundsException.
El manejo de excepciones proporciona una forma de controlar errores o condiciones excepcionales en la ejecución de un programa sin interrumpir su funcionamiento. Utilizando bloques try-catch, la palabra clave throw y la declaración de throws, se puede manejar y propagar de manera controlada cualquier tipo de error o evento inesperado en el flujo del programa.