Manejo de Errores Usando Excepciones Java

Le secci�n anterior mostraba como escribir un manejador de excepci�n para el m�todo writeList() de la clase ListOfNumbers. Algunas veces, es apropiado capturar las excepciones que ocurren pero en otras ocasiones, sin embargo, es mejor dejar que un m�todo superior en la pila de llamadas maneje la excepci�n. Por ejemplo, si se est� utilizando la clase ListOfNumbers como parte de un paquete de clases, probablemente no se querr� anticipar las necesidades de todos los usuarios de su paquete. En este caso, es mejor no capturar las excepciones y permitir que algu�n la capture m�s arriba en la pila de llamadas.

Si el m�todo writeList() no captura las excepciones que pueden ocurrir dentro de �l, debe especificar que puede lanzar excepciones. Modifiquemos el m�todo writeList() para especificar que puede lanzar excepciones. Como recordatorio, aqu� tienes la versi�n original del m�todo writeList().

public void writeList() {
    System.out.println("Entrando en la sentencia try");
    int i;
    pStr = new PrintStream(
              new BufferedOutputStream(
                 new FileOutputStream("OutFile.txt")));

    for (i = 0; i < size; i++)
        pStr.println("Value at: " + i + " = " + victor.elementAt(i));
}

Como recordar�s, la setencia new FileOutputStream("OutFile.txt") podr�a lanzar un excepci�n IOException (que no es una excepci�n en tiempo de ejecuci�n). La sentencia victor.elementAt(i) puede lanzar una excepci�n ArrayIndexOutOfBoundsException (que es una subclase de la clase RuntimeException, y es una excepci�n en tiempo de ejecuci�n).

Para especificar que writeList() lanza estas dos excepciones, se a�ade la clausula throws a la firma del m�todo de writeList(). La clausula throws est� compuesta por la palabra clave throws seguida por una lista separada por comas de todas las excepciones lanzadas por el m�todo. Esta clausula va despu�s del nombre del m�todo y antes de la llave abierta que define el �mbito del m�todo. Aqu� tienes un ejemplo.

public void writeList() throws IOException, ArrayIndexOutOfBoundsException {

Recuerda que la excepci�n ArrayIndexOutOfBoundsException es una excepci�n en tiempo de ejecuci�n, por eso no tiene porque especificarse en la sentecia throws pero puede hacerse si se quiere.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR

SIGUIENTE ARTÍCULO