Las excepciones predefinidas cubren las situaciones de error más habituales con las que nos podemos encontrar, relacionadas con el propio lenguaje y el hardware. Cuando se desarrollan aplicaciones existen otras situaciones de error de más ‘alto nivel’ relacionadas con la funcionalidad de nuestros programas. Imaginemos una aplicación informática que controla la utilización de los remontes de
una estación de esquí: los pases de acceso a los remontes son personales e intransferibles y dispondrán de un código de barras que los identifica. Cada vez que un usuario va a hacer uso de un remonte debe introducir su pase de acceso en una máquina de validación, que a cciona un torno y devuelve el pase.
El sistema puede constar
de un ordenador central al que le llegan telemáticamente los datos
correspondientes a los códigos de barras de los pases que en cada momento se
están introduciendo en cada máquina de validación d e cada remonte; si un
código de barras está en regla, el ordenador envía una orden de liberar el
torno para permitir al usuario acceder al remonte. El ordenador central
habitualmente recibirá códigos correctos utilizados en momentos adecuados, sin
embargo, en ciertas ocasiones nos encontraremos con situaciones anómalas:
1 Código de barras ilegible
2 Código de barras no válido (por ejemplo correspondiente a un pase caducado)
3 Código de barras utilizado en otro remonte en un periodo de tiempo demasiado breve
4 etc.
DEFINICIÓN DE UNA EXCEPCIÓN
DEFINIDA POR EL PROGRAMADOR.
En programación orientada a
objetos lo más adecuado es que las excepciones sean objetos, por lo que en Java
definiremos las excepciones como clases. Nuestras clases de excepción, en
general, heredarán de la clase Exception. En las clases que nos creemos a
partir de Exception, incluiremos al menos el constructor vacío y otro que
contenga un String como argumento. Este String se inicializa automáticamente
con el nombre de la clase; la inicialización se realiza en la superclase
Throwable. El texto que pongamos al hacer uso del segundo constructor se
añadirá al nombre de la clase insertado por la superclase.
UTILIZACION DE UNA EXCEPCION DEFINIDA POR EL PROGRAMADOR
Una vez que disponemos de una
excepción propia, podremos programar la funcionalidad de nuestras aplicaciones
provocando (lanzando) la excepción cuando detectemos alguna de las situaciones
anómalas asociadas.
En el siguiente ejemplo
(ExPropiaClase) se presenta un método (línea 2) que levanta ( throw) la
excepción ExPropia cuando se lee un cero (línea 4). La excepción ExPropia
podría levantarse en diferentes secciones de código de esta u otras clases. No
debemos olvidar indicar que nuestro método es susceptible de lanzar la
excepción (línea 2).
1 public class ExPropiaClase {
2 public void Metodo()
throws ExPropia {
3 if
(Teclado.Lee_int() == 0)
4
throw new ExPropia();
5 }
6 // otros
metodos
7 }
Finalmente, en clases de más alto
nivel podemos programar secciones de código que recojan la excepción que hemos
creado:
1 public class ExPropiaPrueba {
2 public static void main
(String[] args) {
3
System.out.println("Hola");
4 do
5 try {
6
ExPropiaClase Instancia = new ExPropiaClase();
7
Instancia.Metodo();
8
}
9
catch(ExPropia e) {
10
System.out.println(e);
11
}
12
while(true);
13 }
14 }
No hay comentarios:
Publicar un comentario