Manejo de Errores Usando Excepciones Java

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.

COMPARTE ESTE ARTÍCULO

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

SIGUIENTE ARTÍCULO