ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Uso De Excepciones En Java


Enviado por   •  3 de Febrero de 2014  •  3.534 Palabras (15 Páginas)  •  365 Visitas

Página 1 de 15

Excepciones en Java

Manejo De Excepciones en Java

Manejo de Errores Utilizando Excepciones

Existe una regla de oro en el mundo de la programación: en los programas ocurren errores:

¿Qué sucede realmente después de que ha ocurrido el error?

¿Cómo se maneja el error?

¿Quién lo maneja?

¿Puede recuperarlo el programa?

El lenguaje Java utiliza excepciones para proporcionar capacidades de manejo de errores.

¿Qué es un Excepción y Por Qué Debo Tener Cuidado?

El término excepción es un forma corta da la frase "suceso excepcional" y puede definirse de la siguiente forma:

Definición:

Una excepción es un evento que ocurre durante la ejecución del programa que interrumpe el flujo normal de las sentencias.

Muchas clases de errores pueden utilizar excepciones — desde serios problemas de hardware, como la avería de un disco duro, a los simples errores de programación, como tratar de acceder a un elemento de un array fuera de sus límites. Cuando dicho error ocurre dentro de un método Java, el método crea un objeto 'exception' y lo maneja fuera, en el sistema de ejecución. Este objeto contiene información sobre la excepción, incluyendo su tipo y el estado del programa cuando ocurrió el error.

El sistema de ejecución es el responsable de buscar algún código para manejar el error. En terminología java, crear una objeto exception y manejarlo por el sistema de ejecución se llama lanzar una excepción.

Después de que un método lance una excepción, el sistema de ejecución entra en acción para buscar el manejador de la excepción. El conjunto de "algunos" métodos posibles para manejar la excepción es el conjunto de métodos de la pila de llamadas del método donde ocurrió el error.

Un manejador de excepción es considerado adecuado si el tipo de la excepción lanzada es el mismo que el de la excepción manejada por el manejador. Así la excepción sube sobre la pila de llamadas hasta que encuentra el manejador apropiado y una de las llamadas a métodos maneja la excepción, se dice que el manejador de excepción elegido captura la excepción.

Mediante el uso de excepciones para manejar errores, los programas Java tienen las siguientes ventajas frente a las técnicas de manejo de errores tradicionales.

* Ventaja 1: Separar el Manejo de Errores del Código "Normal"

* Ventaja 2: Propagar los Errores sobre la Pila de Llamadas

* Ventaja 3: Agrupar los Tipos de Errores y la Diferenciación de éstos

Ventaja 1: Separar el Manejo de Errores del Código "Normal"

En la programación tradicional, la detección, el informe y el manejo de errores se convierte en un código muy liado. Por ejemplo, supongamos que tenemos una función que lee un Archivo completo dentro de la memoria. En pseudo-código, la función queda:

leerArchivo {

abrir el Archivo;

determinar su tamaño;

asignar suficiente memoria;

leer el Archivo a la memoria;

cerrar el Archivo;

}

A primera vista esta función parece bastante sencilla, pero ignora todos aquello errores potenciales.

* ¿Qué sucede si no se puede abrir el Archivo?

* ¿Qué sucede si no se puede determinar la longitud del Archivo?

* ¿Qué sucede si no hay suficiente memoria libre?

* ¿Qué sucede si la lectura falla?

* ¿Qué sucede si no se puede cerrar el Archivo?

Para responder a estas cuestiones dentro de la función, tendríamos que añadir mucho código para la detección y el manejo de errores. El aspecto final de la función se parecería esto:

codigodeError leerArchivo {

inicializar codigodeError = 0;

abrir el Archivo;

if (ArchivoAbierto) {

determinar la longitud del Archivo;

if (obtenerLongitudDelArchivo) {

asignar suficiente memoria;

if (obtenerSuficienteMemoria) {

leer el Archivo a memoria;

if (falloDeLectura) {

codigodeError = -1;

}

} else {

codigodeError = -2;

}

} else {

codigodeError = -3;

}

cerrar el Archivo;

if (ArchivoNoCerrado && codigodeError == 0) {

codigodeError = -4;

} else {

codigodeError = codigodeError and -4;

}

} else {

codigodeError = -5;

}

return codigodeError;

}

En comparación con las líneas de código original, con obtenido se puede observar un incremento sumamente grande, más del 300 %, además nos podemos llegar a confundir con mucha facilidad.

Java proporciona una solución elegante al problema del tratamiento de errores: las excepciones. Las excepciones le permiten escribir el flujo principal de su código y tratar los casos excepcionales en otro lugar. Si la función leerFcihero utilizara excepciones en lugar de las técnicas de manejo de errores tradicionales se podría parecer a esto.

leerArchivo{

try {

abrir el Archivo;

determinar su tamaño;

asignar suficiente memoria;

leer el Archivo a la memoria;

cerrar el Archivo;

} catch (falloAbrirArchivo) {

hacerAlgo;

} catch (falloDeterminacionTamaño) {

hacerAlgo;

} catch (falloAsignaciondeMemoria) {

hacerAlgo;

} catch (falloLectura) {

hacerAlgo;

} catch (falloCerrarArchivo) {

hacerAlgo;

}

}

Observa que las excepciones no evitan el esfuerzo de hacer el trabajo de detectar, informar y manejar errores. Lo que proporcionan las excepciones es la posibilidad de separar los detalles oscuros de qué hacer cuando ocurre algo fuera de la normal.

Introducción a la programación en Java

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 nosotros deberíamos capturar (catch) y resolver

...

Descargar como (para miembros actualizados) txt (19 Kb)
Leer 14 páginas más »
Disponible sólo en Clubensayos.com