Las excepciones en Java están destinadas, al
igual que en el resto de los lenguajes que las
soportan, para la detección y corrección de
errores. Si hay un error, la aplicación no
debería “romperse”. Se debería lanzar una
excepción que se pueda capturar y resolver la
situación de error. Java permite este
mecanismo de control de errores, permitiendo
aumentar en gran medida la robustez de
nuestros desarrollos.
¿Qué es?
En Java, los errores en tiempo de
ejecución (cuando se esta
ejecutando el programa) se
denominan excepciones
Ventajas
Que el programa se siga
ejecutando correctamente,
aún si se encuentra un
error dentro del mismo
Controlar el error
para indicar al usuario por qué
el programa no continúo su ejecución normal
Implementación en el
programa
Una excepcion se elabora, capturándola primero con un try (es el bloque de código donde se prevé
que se genere una excepción) y luego marcandola con un catch (Es el código que se ejecuta cuando
se produce la excepción. En este bloque tendremos que asegurarnos de colocar código que no
genere excepciones) y terminando con un finally (Es el bloque de código que se ejecuta siempre,
haya o no excepción)
Ejemplos de excepciones
ArithmeticException Las
excepciones aritméticas son
típicamente el resultado de una
división por 0
NullPointerException Se produce cuando se
intenta acceder a una variable o método antes de
ser definido:
IncompatibleClassChangeException El
intento de cambiar una clase afectada
por referencias en otros objetos,
específicamente cuando esos objetos
todavía no han sido recompilados.
ClassCastException El
intento de convertir un
objeto a otra clase que no
es válida
NegativeArraySizeException Puede
ocurrir si hay un error aritmético al
intentar cambiar el tamaño de un
array.
OutOfMemoryException ¡No debería producirse nunca! El intento de
crear un objeto con el operador new ha fallado por falta de
memoria. Y siempre tendría que haber memoria suficiente porque
el garbage collector se encarga de proporcionarla al ir liberando
objetos que no se usan y devolviendo memoria al sistema.
ArrayIndexOutOfBoundsException Es la excepción que más frecuentemente se
produce. Se genera al intentar acceder a un elemento de un array más allá de los
límites definidos inicialmente para ese array.
UnsatisfiedLinkException Se
hizo el intento de acceder a
un método nativo que no
existe