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

Java Unidad 5 Exepciones


Enviado por   •  6 de Junio de 2014  •  2.236 Palabras (9 Páginas)  •  234 Visitas

Página 1 de 9

Unidad 5 “Excepciones”

En esta unidad hablaremos del manejo de excepciones. Una excepción es la indicación de un problema que ocurre durante la ejecución de un programa. El nombre “excepción” viene del hecho de que, aunque puede ocurrir un problema, éste ocurre con poca frecuencia; si la “regla” es que una instrucción generalmente se ejecuta en forma correcta, entonces la “excepción a la regla” es cuando ocurre un problema.

Definición. Consiste en prevenir errores lógicos en la ejecución de las instrucciones de un programa, haciendo entender como si no hubiera pasado nada en su ejecución.

El manejo de excepciones permite a los programadores crear aplicaciones que puedan resolver (o manejar) las excepciones. En muchos casos, el manejo de una excepción permite que el programa continúe su ejecución como si no se hubiera encontrado del problema. Un problema más grave podría evitar que un programa continuara su ejecución normal, en vez de requerir al programa que notifique al usuario sobre el problema antes de terminar de manera controlada.

Qué son las excepciones. Son sentencias condicionales parecidos al if… else, (llamados try… catch() ) que permite invocar a ciertas clases que están calibradas para resolver problemas de ciertos casos lógicos que ocurren en la ejecución de un programa.

La lógica del programa evalúa frecuentemente condiciones que determinan cómo debe procesar la ejecución del programa. Considerando el siguiente pseudocódigo:

Realizar una tarea

Si la tarea anterior no se ejecutó correctamente

Realizar el procesamiento de errores

Realizar la siguiente tarea

Si la tarea anterior no se ejecutó correctamente

Realizar el procesamiento de errores

En este pseudocódigo empezamos realizando una tarea; después, evaluamos si esa tarea se ejecutó correctamente. Si no lo hizo, realizamos el procesamiento de los errores.

De esta manera, continuamos con la siguiente tarea. Aunque esta forma de manejo de errores funciona, al entremezclar la lógica del programa con la lógica del manejo de errores el programa podría ser difícil de leer, mantener y depurar; especialmente en aplicaciones extensas.

El manejo de excepciones está diseñado para procesar errores sincrónicos, que ocurre cuando se ejecuta una instrucción. Ejemplos comunes son los índices fuera de rango, el desbordamiento aritmético (es decir, un valor fuera de rango representable de valores), la división entre cero, los parámetros inválidos de métodos, la interrupción de subprocesos y la asignación fallida de memoria (debido a la falta de ésta).

El manejo de excepciones no está diseñado para procesar los problemas asociados con los eventos asíncronos (por ejemplo, completar las operaciones de E/S de disco, la llegada de

mensajes de red, clics del ratón y pulsaciones de teclas), los cuales ocurren en paralelo con, y en forma independiente de, el flujo de control del programa.

Con lenguajes de programación que no soporta el manejo de excepciones, los programadores a menudo retrasan la escritura de códigos de procesamiento de errores, o algunas veces olvidan incluirlo. Esto hace que los productos sean menos robustos. Java permite al programador tratar con el manejo de excepciones fácilmente, desde el comienzo de un proyecto. Sin embargo, el programador debe incorporar una estrategia de manejo de excepciones en los proyectos de software.

El mecanismo de manejo de excepciones también es útil para procesar los problemas que ocurren cuando un programa invoca a los métodos de otras clases. En vez de manejar los problemas internamente, dichos métodos utilizan por lo común excepciones para notificar a los métodos que hacen las llamadas cuándo ocurren los problemas. Esto permite a los programadores implementar un manejo de errores personalizados para cada aplicación.

El manejo de excepciones está dirigido a situaciones en las que el método que detecta un problema es incapaz de manejarlo. Dicho método lanza una excepción. No hay garantía que habrá un manejador de excepciones (código que se ejecuta cuando el programa detecta una excepción) para procesar ese tipo de excepción. Si existe, el manejador de excepciones atrapa y maneja a esa excepción. El resultado de una excepción no atrapada a menudo produce efectos adversos y podría terminar con la ejecución del programa.

Java proporciona las instrucciones try para permitir el manejo de excepciones. Una instrucción try consiste de la palabra clave try, seguida por llaves ( { } )que delimitan a ese bloque try. El bloque try contiene instrucciones que podrían ocasionar excepciones, e instrucciones que no deberían ejecutarse en caso de que ocurra una instrucción. Debe haber por lo menos una cláusula catch (a la que también se le llama manejador de excepciones) o una cláusula finally inmediatamente después del bloque try.

Cada clausula catch especifica entre paréntesis un parámetro de excepción, el cual identifica el tipo de excepción que puede procesar el manejador. El nombre del parámetro de excepción permite a la cláusula catch interactúe con un objeto de excepción atrapada. Después del último manejador catch, una cláusula finally opcional proporciona código que siempre se ejecuta. Sin importar que ocurra o no un excepción.

El punto en el programa en el que ocurre una excepción ( es decir, la ubicación en la que un método detecta y lanza una excepción) se conoce como el punto de lanzamiento. Si ocurre una excepción en un bloque try, ese bloque termina inmediatamente y el control del programa se transfiere a la primera cláusula catch que vaya después del bloque try. Esto se conoce como modelo de terminación del manejo de excepciones, ya que el bloque try que encierra una excepción lanzada termina al ocurrir esa excepción.

Si no ocurre excepciones en un bloque try, el programa ignora el (los) manejador(es) para ese bloque. La ejecución del programa continúa con la siguiente instrucción que haya

después de la secuencia try/catch. Si aparece una cláusula finally después de la última cláusula catch, la cláusula finally se ejecutará sin importa que ocurra o no una excepción. Si ocurre una excepción en un método y no es atrapada, o si la instrucción que produjo la excepción no se encuentra dentro de un bloque try, el método que contiene la instrucción termina inmediatamente y el programa trata de localizar un bloque try circundante en el método que hizo la llamada. (Y ese proceso, se le conoce como limpieza de la pila, que se describe más adelante).

Además,

...

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