Una
excepción es un evento que ocurre durante la ejecución de un programa y detiene
el flujo normal de la secuencia de instrucciones de ese programa; en otras
palabras, una excepción es una condición anormal que surge en una secuencia de
código durante su ejecución.
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 morirse y generar un core (o un crash en
caso del DOS). Se debería lanzar (throw) una excepción que a su vez
debería capturar (catch) y resolver la situación de error, o poder ser
tratada finalmente (finally) por un gestor por defecto u omisión. Java
sigue el mismo modelo de excepciones que se utiliza en C++. Utilizadas en forma
adecuada, las excepciones aumentan en gran medida la robustez de las
aplicaciones.
La gestión
de excepciones en Java proporciona un mecanismo excepcionalmente poderoso
para controlar programas que tengan muchas características dinámicas durante su
ejecución. Las excepciones son formas muy limpias de manejar errores y problemas
inesperados en la lógica del programa, y no deberían considerarse como un
mecanismo general de ramificaciones o un tipo de sentencias de salto. Los
lugares más indicados para utilizar excepciones son aquellos en los que se usan
valores como 0 o 1, en C/C++, para indicar algún fallo funcional. Por
ejemplo:
#include <sys/errno.h>
int fd;
fd = open( "leeme.txt" );
if( fd == -1 && errno == EEXIT )
fd = open( "defecto.txt" );
}
En este
programa C, si falla la primera sentencia open() por cualquiera de las 19
razones distintas de EEXIT por las que puede fallar, entonces el programa se
continuaría ejecutando y moriría por alguna razón misteriosa más adelante,
dejando atrás un problema de depuración complicado y frustrante.
La versión
Java del código anterior, tal como se muestra a continuación:
FilterReader fr;
try {
Fr = new FilterReader( "leeme.txt" );
} catch( FileNotFoundException e ) {
fr = new FilterReader( "defecto.txt" );
}
Proporciona una oportunidad para capturar una excepción más genérica y tratar la situación con elegancia o, en el peor de los casos, imprimiría el estado de la pila de memoria.
Por ello,
que la utilización adecuada de las excepciones proporcionará un refinamiento
profesional al código que cualquier usuario futuro de las aplicaciones que
salgan de la mano del programador que las utilice agradecerá con toda
seguridad.
No hay comentarios:
Publicar un comentario