Java中的NoSuchElementException

【Java中的NoSuchElementException】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 NoSuchElementExceptionexampleTable.elements().nextElement(); //as there are no elements in our Set//and HashTable but we are trying to access the//elements.}}

输出:
Java中的NoSuchElementException

文章图片
如何避免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()); } }}

这种方式确保了任何存在的元素都可以被访问。

    推荐阅读