NoSuchElementException由Enumeration的nextElement方法引发, 该方法指示枚举中不再剩余元素。 NoSuchElementException由以下方法引发:
- 枚举接口的nextElement()
- NamingEnumeration接口的next()
- StringTokenizer类的nextElement()
- Iterator接口的next()
NoSuchElementException是RuntimeException的子类, 并实现Serializable接口。
NoSuchElementException的构造方法
建设者 | 描述 |
---|---|
NoSuchElementException() | 它构造一个NoSuchElementException, 没有任何错误消息作为其字符串。 |
NoSuchElementException(String s) | 它构造一个NoSuchElementException, 它保存了一个消息字符串s, 该消息字符串是对该错误的引用, 以供以后由getMessage方法检索。字符串s包含引发错误的类名。 |
NoSuchElementException的示例
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Set;
public class NoSuchElementException {
public static void main(String[] args) {
Set exampleleSet = new HashSet();
Hashtable exampleTable = new Hashtable();
exampleleSet.iterator().next(); //This throws NoSuchElementException
exampleTable.elements().nextElement(); //as there are no elements in our Set
//and HashTable but we are trying to access the
//elements.
}
}
输出:
如何避免NoSuchElementException?
发生NoSuchElementException的最常见情形之一是当我们遍历一个空Set时。如果希望避免这种异常, 可以在遍历该集合之前进行检查。在进行迭代时, 请按照以下步骤每次检查集合中是否存在元素:
public class NoSuchElementException {
public static void main(String[] args) {
Set exampleleSet = new HashSet();
Iterator it = exampleleSet.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
}
}
这种方式确保了任何存在的元素都可以被访问。
评论前必须登录!
注册