Las dos secciones siguientes que cubren la captura y especificaci�n de excepciones utilizan este ejemplo.
import java.io.*; import java.util.Vector; class ListOfNumbers { private Vector victor; final int size = 10; public ListOfNumbers () { int i; victor = new Vector(size); for (i = 0; i < size; i++) victor.addElement(new Integer(i)); } public void writeList() { PrintStream pStr = null; System.out.println("Entering try statement"); 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)); pStr.close(); } }
Este ejemplo define e implementea una clase llamada ListOfNumbers. Sobre su construcci�n, esta clase crea un Vector que contiene diez elementos enteros con valores secuenciales del 0 al 9. Esta clase tambi�n define un m�todo llamado writeList() que escribe los n�meros de la lista en un fichero llamado "OutFile.txt".
El m�todo writeList() llama a dos m�todos que pueden lanzar excepciones. Primero la siguiente l�nea invoca al constructor de FileOutputStream, que lanza una excepci�n IOException si el fichero no puede ser abierto por cualquier raz�n.
pStr = new PrintStream(new BufferedOutputStream(new FileOutputStream("OutFile.txt")));
Segundo, el m�todo elementAt() de la clase Vector lanza una excpeci�n ArrayIndexOutOfBoundsException si se le pasa un �ndice cuyo valor sea demasiado peque�o (un n�mero negativo) o demasiado grande (mayor que el n�mero de elementos que contiene realmente el Vector). Aqu� est� c�mo ListOfNumbers invoca a elementAt().
pStr.println("Value at: " + i + " = " + victor.elementAt(i));
Si se intenta compilar la clase ListOfNumbers, el compilador dar� un mensaje de error sobre la excepci�n lanzada por el constructor de FileOutputStream, pero no muestra ning�n error sobre la excepci�n lanzada por elementAt().
Esto es porque la excepci�n lanzada por FileOutputStream, es una escepci�n chequeada y la lanzada por elementAt() es una ejecuci�n de tiempo de ejecuci�n. Java s�lo requiere que se especifiquen o capturen las excepciones chequeadas. Para m�s informaci�n, puedes ve Requerimientos de Java para Capturar o Especificar.
La siguiente secci�n, Captura y Manejo de Excepciones, le mostrar� c�mo escribir un manejador de excepci�n para el m�todo writeList() de ListOfNumbers.
Despu�s de esto, una secci�n llamada Especificar las Excepciones Lanzadas por un M�todo, mostrar� c�mo especificar que el m�todo writeList() lanza excepciones en lugar de capturarlas.