Tipos de excepciones
En Java, las excepciones se clasifican principalmente en las siguientes categorías.
Excepciones verificadas
Las excepciones verificadas (checked exceptions) son las excepciones que el compilador exige manejar en el momento de la compilación. Si no las manejas (usando try-catch o lanzándolas explícitamente con throws), el código no compilará.
Este tipo de excepciones generalmente representan errores que son previsibles y que el programa debería intentar resolver o informar.
Ejemplos comunes de excepciones verificadas son:
IOException(Error de entrada/salida): surge al trabajar con ficheros o flujos de datos.SQLException: se produce al trabajar con bases de datos y consultas SQL.ClassNotFoundException: ocurre cuando no se puede cargar una clase en tiempo de ejecución.
Excepciones no verificadas
Las excepciones no verificadas (unchecked exceptions) son aquellas que no se verifican en tiempo de compilación, por lo que no es obligatorio manejarlas. Generalmente, indican errores en tiempo de ejecución, muchas veces debido a errores de programación, como operar con un valor null o un índice fuera de los límites. Son derivadas de la clase RuntimeException.
Algunos ejemplos de excepciones no verificadas son:
NullPointerException: ocurre cuando se intenta acceder a un objeto que esnull.ArrayIndexOutOfBoundsException: surge cuando se intenta acceder a un índice que está fuera de los límites de un array.ArithmeticException: se produce al realizar operaciones matemáticas ilegales, como dividir entre cero.IllegalArgumentException: aparece cuando un método recibe un argumento inadecuado.
Errores
Los errores (errors), derivados de la clase Error, son problemas serios generalmente relacionados con el sistema donde se ejecuta el programa. No están pensados para ser manejados por el código Java, ya que normalmente representan situaciones críticas, como falta de memoria o errores en el sistema.
Algunos errores comunes son:
OutOfMemoryError: ocurre cuando la Java Virtual Machine (JVM) se queda sin memoria.StackOverflowError: aparece cuando hay un desbordamiento de la pila, por ejemplo, debido a una llamada recursiva infinita.VirtualMachineError: indica problemas serios en la propia máquina virtual de Java.