NamingEnumeration


http://www.cjsdn.net/Doc/JDK50/javax/naming/NamingEnumeration.html

public interface NamingEnumeration<T>
    
    
    
    
extends Enumeration<T>

此接口用于枚举 javax.naming 和 javax.naming.directory 包中的方法所返回的列表。它扩展了 Enumeration,允许在枚举期间抛出异常。

当某一方法(比如 list()、listBindings() 或 search())返回 NamingEnumeration 时,在返回所有结果之前,将保留所遇到的所有异常。在枚举结束时抛出异常(由 hasMore() 完成)。

例如,如果 list() 只返回一部分内容,则相应的异常将是 PartialResultException。list() 将先返回一个 NamingEnumeration。当已由 NamingEnumeration 的 next() 返回最后结果时,调用 hasMore() 将导致抛出 PartialResultException。

在另一个示例中,在指定大小限制为 'n' 的情况下调用 search() 方法。如果结果由 'n' 个以上的结果组成,则 search() 将首先返回一个 NamingEnumeration。当已经通过对 NamingEnumeration 调用 next() 返回了第 n 个结果时,将在调用 hasMore() 时抛出 SizeLimitExceedException。

注意,如果程序使用 hasMoreElements() 和 nextElement() 而不是在 NamingEnumeration 上迭代,那么因为这些方法无法抛出异常,所以不会抛出异常。此外,在前面的示例中,在 nextElement() 已返回第 n 个结果后,调用 hasMoreElements() 将返回 false。

还要注意的是,如果在枚举中没有剩余元素时该程序调用 next() 或 nextElement(),则将抛出 NoSuchElementException。通过使用 hasMore() 和 hasMoreElements() 检查是否已经到达枚举末尾,程序总是可以避免此异常。

如果枚举期间抛出异常,则该枚举变得无效。对该枚举后续调用任何方法都将产生不确定的结果


你可能感兴趣的:(list,search,扩展,interface)