Contenido

Qué son las excepciones en Java

Las excepciones en Java son eventos que interrumpen el flujo normal de ejecución de un programa debido a circunstancias excepcionales, como errores de entrada de datos, acceso a recursos no disponibles, o condiciones inesperadas durante la ejecución del programa. Estos eventos pueden ocurrir tanto en tiempo de compilación como en tiempo de ejecución y deben ser manejados para evitar la terminación abrupta del programa.

 Tipos de excepciones

En Java, las excepciones se dividen en dos categorías principales:

  1. Excepciones revisadas (checked exceptions): Son aquellas que el compilador obliga a manejar explícitamente utilizando bloques try-catch o declarándolas en la firma del método con la cláusula throws. Estas excepciones generalmente representan condiciones que el programador puede anticipar y manejar de manera adecuada.

  2. Excepciones no revisadas (unchecked exceptions): Son aquellas que el compilador no requiere manejar explícitamente. Estas excepciones generalmente representan errores de programación o condiciones imprevistas durante la ejecución del programa, como divisiones por cero, acceso a índices fuera de rango, o punteros nulos.

 

 Lanzamiento y propagación de excepciones

  • Lanzamiento de excepciones: Consiste en la generación de una excepción en un punto específico del código utilizando la palabra clave throw, seguida de una instancia de la excepción que se desea lanzar.

  • Propagación de excepciones: Ocurre cuando una excepción generada en un método no es manejada en ese mismo método, sino que se propaga hacia arriba en la pila de llamadas hasta que se encuentra un bloque try-catch adecuado para manejarla o el programa termina si no se maneja.

 

 Bloques try-catch

Los bloques try-catch son estructuras de control utilizadas para manejar excepciones en Java. La sintaxis básica es la siguiente:

				
					try {
    // Código propenso a lanzar una excepción
} catch (ExcepcionTipo1 e1) {
    // Manejo de excepción tipo 1
} catch (ExcepcionTipo2 e2) {
    // Manejo de excepción tipo 2
} finally {
    // Bloque opcional que se ejecuta siempre, independientemente de si se lanza una excepción o no
}

				
			

En un bloque try, se coloca el código propenso a lanzar excepciones. Si una excepción es lanzada dentro del bloque try, el control se transfiere al bloque catch correspondiente según el tipo de excepción lanzada. Si no se lanza ninguna excepción, se omite el bloque catch y se continúa la ejecución normalmente. El bloque finally es opcional y se ejecuta siempre, independientemente de si se lanza una excepción o no. Se utiliza generalmente para liberar recursos, como cerrar archivos o conexiones a bases de datos.

Los bloques try-catch proporcionan un mecanismo para manejar excepciones de manera controlada, permitiendo que el programa se recupere de situaciones excepcionales sin terminar abruptamente.