Jerarquía de excepciones
En Java, las excepciones están organizadas en una jerarquía de clases que parte de la clase base Throwable. La jerarquía divide las excepciones en dos subcategorías principales: Exception y Error.
La clase Throwable es la clase raíz de todas las excepciones en Java.
De Throwable derivan dos subclases:
Exception: Incluye excepciones que un programa puede anticipar y manejar. Estas excepciones pueden ser de dos tipos:Checked exceptions(excepciones verificadas): El compilador obliga a manejarlas en tiempo de compilación.Unchecked exceptions(excepciones no verificadas): No se verifican en tiempo de compilación y suelen derivar deRuntimeException.
Error: Representa problemas graves generalmente relacionados con el entorno de ejecución, como errores de memoria. No están pensados para ser manejados, ya que suelen ser fatales.
Excepciones más utilizadas
Aquí tienes una tabla con las excepciones más comunes de cada tipo, organizadas por su posición en la jerarquía:
| Clase de Excepción | Descripción | Tipo | Superclase |
|---|---|---|---|
Throwable | Clase raíz de todas las excepciones y errores. | - | |
Exception | Clase base para excepciones que el programa puede manejar. | Checked | Throwable |
IOException | Representa errores de entrada/salida, como problemas al leer o escribir ficheros. | Checked | Exception |
SQLException | Ocurre al trabajar con bases de datos y SQL. | Checked | Exception |
ClassNotFoundException | Se lanza cuando no se encuentra una clase en tiempo de ejecución. | Checked | Exception |
RuntimeException | Clase base para excepciones de tiempo de ejecución. No verificadas por el compilador. | Unchecked | Exception |
NullPointerException | Ocurre cuando se intenta acceder a un objeto null. | Unchecked | RuntimeException |
ArrayIndexOutOfBoundsException | Se lanza al acceder a un índice fuera de los límites de un array. | Unchecked | RuntimeException |
ArithmeticException | Error matemático, como dividir por cero. | Unchecked | RuntimeException |
IllegalArgumentException | Ocurre cuando un argumento es inadecuado. | Unchecked | RuntimeException |
Error | Clase base para errores graves que el programa no debería manejar. | - | Throwable |
OutOfMemoryError | Ocurre cuando la JVM se queda sin memoria. | - | Error |
StackOverflowError | Aparece debido a un exceso de llamadas recursivas. | - | Error |
VirtualMachineError | Errores críticos en la JVM. | - | Error |