¿Que es un error para java?
Tal y como ya sabemos java es 100 por cien orientada a
objetos POO acrónimo del ingles OOP (Object Oriented Programming). Y siendo así
para java un error es un objeto y lo maneja como tal.
Existe una super Clase Error de la que heredan el resto.
Por lo que ante la duda de algún error podemos buscarlo en la api de java donde
se encuentran todas las clases.
En primer lugar debemos diferenciar en dos grandes grupos de
errores
Tiempo de compilación: Si la sintaxis de
nuestro programa no es la correcta, se nos olvida un punto y coma, o un
paréntesis, o una llave de cierre, o no pamos los parámetros a un método.
Nuestro programa no llegará a compilarse eso quiere decir que no llegará a
cargar. Para esto los entornos de desarrollo nos ayudan bastante avisandonos de
fallos y autocompletando textos de métodos, pero a pesar de todo en ocasiones
cometeremos errores que tardaremos un rato en ver como corregir esa sintaxis.
Tiempo de ejecución: Nuestro programa
tiene una sintaxis correcta por lo que se compilará pero al ejecutarse se
precipita un error porque hemos cometido algún error en el algoritmo que hemos
creado. Todos estos errores heredarán de
la clase Throwable.
Heredando
de la clase Throwable tenemos la clase Error y Exception.
Error: Suelen ser errores de Harware
falta de espacio en ordenador, no dispone de memoria para ejecutarlo… Con los
conocimientos adquiridos podemos avisar al usuario con un JOptionPane.
Exception: Son errores que acontecen
una vez inicia el programa y se detiene en un punto por algún fallo. Entre
otros existen dos grupos. IOException y RuntimeExcepcion.
IOException: Son aquellos que no
dependen del programador o excepciones comprobadas, alguien mueve un carpeta
del sitio donde la busca el programa y al buscarlo el programa no lo encuentra.
Para tratar estos errores java tiene el try/catch. Le diremos al programa haz
lo que tiene el try y en caso contrario has lo que tiene el catch. En caso de
que el programa necesite un try/catch y no lo hayamos incluido nosotros java
nos avisará que existe un erro IOException (Unhandled exception type IOException).
URL ruta_imageIcon_ERROR =
Lamina_Menu_Superior.class.getResource("ImageIcon_warning_1.jpg");
try {
ImageIcon
ImageIcon_ERROR = new ImageIcon(ruta_imageIcon_ERROR);
}catch(IOException e){
System.out.println("no se encuentra la
imagen");
}
RuntimeException: Son errores de
programación o errores no comprobados. Declaración incorrecta de variables, dar
un valor superior al declarado a un array esto nos daría un error ArrayIndexOutOfBoundsException.
·
ArrayIndexOutOfBoundsException:
Has excedido el número índice del array.
Has excedido el número índice del array.
InputMismatchException
Hereda de
RuntimeException
Es un error en el tipo de dato
introducido en el programa, imaginemos que tenemos un formulario que tine una
etiqueta (JtextTarea). Podriamos evitarlo realizando un Casting. Al heredar de
Runtime exception no deberíamos utilizar try/catch.
ArithmeticException
Hereda de RuntimeException es una
excepción no controlada o unchecked.
Excepción Aritmética. Se lanza
cuando acontece una condición aritmética que no se puede cumplir. Imaginemos
que tenemos una variable con un número entero (int) pero la dividimos por 0.
NumberFormatException
Hereda de RuntimeException es una excepción no controlada o
unchecked.
Excepciones formato número. Se
lanza cuando introducimos una cadena de texto (String) cuando se espera un
formato número. O cuando nuestra variable espera que le introduzcamos un número
entero (int) y recibe un decimal (float, double) o un numero mas grande de lo que
espera (float).
URLMalformedException
Hereda de IOException . La URL está mal escrita.
EOFException
Hereda de IOException.
Nos indica que ha llegado al
final de un archivo de una manera inesperada. Nuestro programa ha de leer un
archivo de texto compuesto por 150 líneas pero cuando llega a la línea 100 ya
no quedan mas líneas en nuestro fichero, alguien las ha borrado y nuestro
programa java no puede llegar al final
del fichero (EOF)
NullPointerException
Hereda de IOException
Al heredar de IOException es un erreo Comprovado.
Utilazaremos try/catch
Excepción
de puntero nulo. Hemos declarado un objeto con un tratamiento de excepciones
pero no hemos valorado la posibilidad de que la variable se queda vacia al no
cargar.
Imaginemos
que creamos un programa que necesita una imagen, con esta instrucción le
diríamos que en caso de no existir que salga el mensaje :
URL ruta_imageIcon_ERROR = Lamina_Menu_Superior.class.getResource("ImageIcon_warning_1.jpg");
try {
ImageIcon ImageIcon_ERROR = new ImageIcon(ruta_imageIcon_ERROR);
}catch(IOException e){
System.out.println("no
se encuentra la imagen");
}
Pero
imaginemos que más a delante nuestro programa esta llamando al objeto imagen:
ERROR = new JButton("ERROR",ImageIcon_ERROR);
En este caso nuestro programa se
caería creando el objeto error NullPointerException. La forma de solucionarlo
sería la siguiente, decirle que si existe la imagen que cargue el botón con
ella y en caso contrario que el botón no tenga imagen:
if(ImageIcon_ERROR== null) {
ERROR = new JButton("ERROR");
}else {
}
Esquema control errores java |
En el siguiente articulo os explico como craer nuestros objetos error para controlar mejor que pasa en nuestro programa de java.
No hay comentarios:
Publicar un comentario