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.