Tema: Exception's
Pregunta: Como manejo las Exepciones y que son??
Respuesta: Las Exceptions son lanzadas por algunos metodos, y se lanzan cuando sucede algun error con el metodo, por ejemplo cuando una Base de Datos no se conecta correctamente o cuando no encuentra una tabla en la base de datos, etc.... los metodos lanzan exepciones que nos avisan que a ocurrido mal, cuando ocurre esto, tenemos 2 alternativas,
Relanzarlas o Capturarlas, si las queremos relanzar pues no sabriamos que sucedio, en cambio si las capturamos podemos mostrar el error o mandar un mensaje en especifico.
Para relanzar las exeception unicamente le agregamos
throws Exception al metodo.
Código PHP:
public class LanzarExceptions{
public static void main(String arg[])throws Exception{
int num;
num = Integer.parseInt(arg[0]);
System.out.println("El numero introducido es: " + num);
}
}
Para capturarlas usamos TRY,CATCH, FINALLY algo asi:
Código PHP:
public class CapturarExceptions{
public static void main(String arg[]){
int num;
try{
num = Integer.parseInt(arg[0]);
System.out.println("El numero introducido es: " + num);
}catch(Exception error){
System.out.println("El numero introducido no es valido, asegurate de que no contenga letras y que sea un numero entero. El error es: " + error);
}
finally{
//do nothing jejejeje :)
}
}
}
Si te fijaste es mejor capturarlas y asi mostrar un mensaje con el error ocacionado.
-------- Agosto 15, 2006 -----------
Cabe mencionar que tambien podemos capturar diferentes errores, y desplegar diferentes mensajes o realizar otras cosas, dependiendo del error generado, en los ejemplos anteriores unicamente he puesto
Exception, pero tembien existen clases que extienden de esta y que son mas especificas, como por ejemplo
ClassNotFoundException,
IOException,
BadLocationException, etc... y todas estas heredan de la superclase
Exception, ahora bien para capturar una por una lo hacemos asi:
Código PHP:
public class Capturar{
public static void main(String arg[]){
int num;
try{
num = Integer.parseInt(arg[0]);
System.out.println("El numero introducido es: " + num);
}catch(ArrayIndexOutOfBoundsException error){
System.out.println("Es necesario pasar un numero como parametro.");
}catch(NumberFormatException e){
System.out.println("La entrada "+arg[0]+" no es un numero!");
}finally{
//do nothing jejejeje :)
}
}
}
-------- Febrero 8, 2006 -----------
Es importante mencionar que el bloque finally
Siempre se ejecuta, independientemente de que se ocacione un error o no, esto es muy util cuando trabajamos con base de datos, pues nos aseguramos de cerrar la conexion a la DB y no dejarla abierta.