Bueno, gracias
Es un poco complicado entender el manejo de Excepciones en Java para mi
(Aunque las excepciones en PL/SQL las entiendo perfectamente y se cuando debo y cuando no aplicarlas
) yo que vengo de lenguajes puramente estructurados como C pero ahi estoy intentando.
Yo pensaba que podia evaluar el vacio de una variable tipo String con " " pero veo que no. Igual me tomare este ejemplo enserio para poder continuar con mi aprendizaje... se que el codigo esta sumamente principiante pero soy autodidacta y apenas llevo menos de 1 semana tratando de relacionarme con Java y comprenderlo...
Igual, mil gracias
De nada
Lo primero que debes hacer es aprender que es todo lo relacionado con programación orientada a objetos. No es muy difícil, pero hay que tomárselo con calma.
Breve expliación de las excepciones:
¿Qué es una excepción? Es un objeto que normalmente (no siempre) se lanza automáticamente cuando hay un error y que puede ser encapsulado para controlarlo.
El bloque de control para tratar una excepción es este:
try{
//sentencias java
//sentencias java
}
Ese es el más típico. Captura una excepción de tipo "Exception" PERO! Todas descienden de ese tipo (repito importante aprender las bases de orientación a objetos), así que ahí estarían capturadas todas.
Además como ves en el catch se pueden poner las mismas sentencias que fuera, incluso otro try si quieres!!
Tal vez sea necesario diferenciar entre un error de números por ejemplo del resto de errores:
try{
//sentencias
System.
out.
println(nfex.
toString()); //sentencias
//sentencias
}
Como puedes ver se puede clasificar el tipo de error que suelta y actuar según el caso. Se podría decir que es parecido aún switch (salvando las diferencias!).
¿Qué es nfex y la e? Es el nombre que se da al objeto creado. Al saltar la exceción se crea un objeto del tipo que fuese y ahí que darle un nombre. Así si salta uno del tipo NumberFormatException ese objeto se llamará nfex y podré usarlo como ves arriba. Con la "e" lo mismo, es el nombre para el resto de errores posible.
Además esa estructura tiene otro posible uso:
try{
//code
//code
}finally{
//code
}
Puedes ver que he añadido "finally". Ese bloque se ejecutará SIEMPRE, tanto si se lanzó la excepción como si no, es importante recordarlo. ¿Para qué es útil? Por ejemplo para cuando se está tratando ficheros y surge una excepción que va a hacer abortar el fichero. Bien pues ahí dentro puedes cerrar el fichero o lo que creas que sea necesario.
Recuerda que si pones el bloque finally (solo se puede poner un bloque finally) siempre se ejecutará, tanto si salta excepción como si no.
PD: algo totalmente imprescindible es acostumbrarse a usar la API de java, la documentación. Acá la tienes para la versión 1.6, no se cual tendrás instalada:
http://java.sun.com/javase/6/docs/api/Nota rápida: Todo lo que funciona por defecto en java está includio en el paquete java.lang, tal vez sea útil echarle un vistazo y ver que hay dentro. Por ejemplo está la clase String, si no estuviese tendrías que estar importandolo siempre.