Programación en castellano Añadir una dirección | Buscador | Cursos | Artículos | Foros | Formación

Sistema de Nombrado en Java (JNDI) [Parte I]
Autor: Sun
Traductor: Juan Antonio Palos (Ozito)


En esta página:


Excepciones de Nombrado

Muchos métodos de los paquetes JNDI lanzan una NamingException cuando necesitan indicar que la operación solicitada no se ha realizado.

Normalmente, usaremos un bloque try/catch para envolver los métodos que lanzan NamingException.

try {
    Context ctx = new InitialContext();
    Object obj = ctx.lookup("somename");
} catch (NamingException e) {
    // Handle the error
    System.err.println(e);
}

Árbol de Clases Exception

El JNDI tiene un rico árbol de excepciones que nace de la clase NamingException.

Los nombres de las clases de las excepciones son auto-explicativos y los veremos más abajo. Para manejar una subclase particular de NamingException, capturamos la clase de forma separada. Por ejemplo el siguiente código trata especialmente a AuthenticationException y sus subclases.

try {
    Context ctx = new InitialContext();
    Object obj = ctx.lookup("somename");
} catch (AuthenticationException e) {
    // attempt to reacquire the authentication information
    ...
} catch (NamingException e) {
    // Handle the error
    System.err.println(e);
}

Enumeraciones

Operaciones como Context.list() y DirContext.search() devuelven una NamingEnumeration . En estos casos, si ocurre un error y no se devuelve ningún resultado, se lanzará NamingException o una de sus subclases apropipadas en el momento en que se llame al método. Si ocurre un error pero hay algunos resultados para devolver, se devuelve una NamingEnumeration para que podamos obtener dichos resultados. Cuando todos los resultados se han acabado, llamar a NamingEnumeration.hasMore() causará que se una lance una NamingException (o una de sus subclases)  para indicar el error. En este punto, la enumeración ya no es válida y no se puede llamar a más métodos sobre ella.

Por ejemplo, si realizamos una search() y especificamos un contador límite (n) de cuántas respuestas devolver, el search() devolverá una enumeración consitente en como máximo n resultados. Si el número de resultados excede de n, cuando se llame a NamingEnumeration.hasMore() la vez n+1, se lanzará una SizeLimitExceededException.

Puedes ver la explicación sobre el contador límite en esta sección para ver un ejemplo.

Ejemplos en este Tutorial

En el código de ejemplo en línea que está dentro de este tutorial, normalmente se omiten las clausulas try/catch para una mejor lectura. Normalmente, como aquí sólo se meustran fragmentos de código, sólo se incluyen las líneas que ilustran directamente el concepto. Veremos los bloques try/catch apropiados para NamingException si miramos los ficheros fuentes que acompañan este tutorial.

Excepciones en el Paquete javax.naming

Aquí tenemos las direcciones en el API de Sun de las excepciones contenidas en el paquete javax.naming:

Excepciones en el Paqute javax.naming.directory

Aquí tenemos las direcciones en el API de Sun de las excepciones contenidas en el paquete javax.naming.directory.

Excepciones en el Paquete javax.naming.ldap

Aquí tenemos las direcciones en el API de Sun de las excepciones contenidas en el paquete javax.naming.directory:


Principio Página
© 1999-2002, Programación en castellano, s.l.
Contacto - Datos legales

ReD Internet: Hospedaje Web | envio sms gratis | Salvapantallas | Fondos de Escritorio, famosas | melodias moviles gratis| Gratis