Saltar al contenido principal

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 de RuntimeException.
  • 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ónDescripciónTipoSuperclase
ThrowableClase raíz de todas las excepciones y errores.-
ExceptionClase base para excepciones que el programa puede manejar.CheckedThrowable
IOExceptionRepresenta errores de entrada/salida, como problemas al leer o escribir ficheros.CheckedException
SQLExceptionOcurre al trabajar con bases de datos y SQL.CheckedException
ClassNotFoundExceptionSe lanza cuando no se encuentra una clase en tiempo de ejecución.CheckedException
RuntimeExceptionClase base para excepciones de tiempo de ejecución. No verificadas por el compilador.UncheckedException
NullPointerExceptionOcurre cuando se intenta acceder a un objeto null.UncheckedRuntimeException
ArrayIndexOutOfBoundsExceptionSe lanza al acceder a un índice fuera de los límites de un array.UncheckedRuntimeException
ArithmeticExceptionError matemático, como dividir por cero.UncheckedRuntimeException
IllegalArgumentExceptionOcurre cuando un argumento es inadecuado.UncheckedRuntimeException
ErrorClase base para errores graves que el programa no debería manejar.-Throwable
OutOfMemoryErrorOcurre cuando la JVM se queda sin memoria.-Error
StackOverflowErrorAparece debido a un exceso de llamadas recursivas.-Error
VirtualMachineErrorErrores críticos en la JVM.-Error