martes, 15 de abril de 2008

MANEJO DE EXCEPCIONES EN JAVA

QUE ES UNA EXCEPCIÓN EN JAVA:

Es un evento que ocurre durante la ejecución del programa y detiene el flujo normal de la secuencia de instrucciones de esos programas; 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 para detección y corrección de errores, Si hay un error, la aplicación no debería morirse y generar un core (meollo) o un crash en DOS. Se debería lanzar un throw (arrojar, derribar, echar) una excepción que a su vez debería capturarse en un catch (captura) y resolver la situación de error, o bien poder ser tratada finally (finalmente) por un gestor por defecto. La gestión de excepciones en Java proporciona un mecanismo poderoso para controlar programas que tengan muchas características dinámicas durante su ejecución.[1]

MANEJO DE EXCEPCIONES:

El manejo de excepciones es una estructura de control de los lenguajes de programación diseñada para manejar condiciones anormales que pueden ser tratadas por el mismo programa que se desarrolla.[2]

Por ejemplo, un programa puede admitir cierto número de errores en el formato de los datos y continuar su proceso para producir el mejor resultado posible en lugar de producir una salida aparatosa llena de mensajes de error probablemente incomprensibles para el usuario. Muchas veces la acción asociada a una excepción es simplemente producir un mensaje informativo y terminar, otras veces, es sólo indicación de la necesidad de un cambio en la estrategia de resolución del problema

A continuación se muestra como se utiliza las excepciones, a partir de la versión iterativa de HolaIte.java (“Tomado del Libro JAVA 2 Manual de Usuario y Tutorial- pag. 180”)

import java.awt.*;

import java.applet.Applet.*;

public class HolaIte extends Applet{

private int i = 0;

private String Saludos[]={

“Hola Mundo!”;

“HOLA Mundo!”;

“HOLA MUNDO!”;

};

public void paint( Graphics g ) {
    try {
        g.drawString( Saludos[i],25,25 );
        } catch( ArrayIndexOutOfBoundsException e ) {
            g.drawString( "Saludos desbordado",25,25 );
        } catch( Exception e ) {
            // Cualquier otra excepción
            System.out.println( e.toString() );  
        } finally {
            System.out.println( "Esto se imprime siempre!" );
        }
    i++;
    }[1]

CAPTURA DE EXCEPCIONES:

Las excepciones lanzadas por un método que pueda hacerlo deben recogerse en un bloque try/catch o try/ finally.

TRY:

Es el bloque de código donde se prevé que se genere una excepción. Es como decir “intenta estas sentencias y mira a ver si se produce una excepción”, seguido ir seguido al menos por un catch o una cláusula finally.

CATCH:

Es el código que se ejecuta cuando se produce la excepción. Es como decir “controlo cualquier excepción que coincida con mi argumento”). No hay código alguno que entre en bloque try y un bloque catch, ni entre bloques catch.

FINALLY:

Es el bloque de código que se ejecuta siempre, haya o no haya excepciones, existe controversia en su utilidad. Este bloque finally puede ser util cuando no hay ninguna excepción. Es un trozo de código que se ejecuta independientemente de lo que haga el bloque try.

THROW:

Se utiliza para lanzar explícitamente una excepción. En primer lugar se debe obtener una descripción de un objeto Throwable (throw ObjetoThrowable), bien mediante una cláusula catch o bien creándolo mediante el operador new.

THROWS:

Si un método es capaz de provocar una excepción que no maneja el mismo, debería especificar este comportamiento para que los métodos que lo llamen puedan colocar protecciones frente a una excepción. La palabra clave Throws se utiliza para identificar la lista posible de excepciones que un método puede lanzar.[1]

[1]] JAVA 2 Manual del Usuario y Tutoríal.

[2]http://es.wikipedia.org/wiki/Manejo_de_excepciones

No hay comentarios: