Home > Java > javaTutorial > body text

Java NoSuchElementException

PHPz
Release: 2024-08-30 16:13:18
Original
1003 people have browsed it

The method nextElement throws NoSuchElementExceptionin Java in Enumeration, next method in NamingEnumeration, etc. It denotes that there are no further elements in the enumeration. This exception is the subclass of the exception of RuntimeException and implements the interface Serializable. In addition to Enumeration, there are some other class throws this exception. The following are the different classes and their methods.

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

  • StringTokenizer::nextElement()
  • Enumeration::nextElement()
  • Iterator::next()
  • NamingEnumeration::next()

Syntax, working, constructors, and examples of NoSuchElementException will be explained in the following sections.

Declaration:

Following is the declaration of NoSuchElementException.

public class NoSuchElementExceptionextends RuntimeException
Copy after login

How does NoSuchElementException Work in Java?

As we know, the exception is an error that occurred during program execution. Program gets terminated, and the lines of code after the line that caused the exception won’t be executed when an exception is thrown. There are different situations whereNosuchElementException is thrown. They are:

  • NosuchElementException is thrown during the run time to call the method nextElement( ) of the class Enumeration on an anull enumeration object, or the present position is Enumeration end.
  • NosuchElementException is thrown during the run time on calling the method nextElement( ) or nextToken() of the class StringTokenizeron anull enumeration object or, the present position isStringTokenizerend.
  • NosuchElementException is thrown during the run time on calling the method next( ) of the class Iterator on anull Iterator object or, the present position isIterator end.
  • NosuchElementException is thrown during the run time on calling the method next( ) of the class ListIteratoron anull ListIteratorobject or, the present position isListIteratorend.
  • NosuchElementException is thrown during the run time on calling the method previous ( ) of the class ListIteratoron anull ListIteratorobject or, the present position isListIteratorstart.

Constructors

Following are the two constructors of NoSuchElementException

  • NoSuchElementException(): NoSuchElementException will be constructed without providing any error messages or notifications as string.
  • NoSuchElementException(Stringst): NoSuchElementException will be constructed that provides error messages or notifications as string st. This is used for later retrieval with the help of the method getMessage. Class name that contains the error will be present in the string st.

Examples of Java NoSuchElementException

Let us see some of the sample programs that throw NoSuchElementException in Java.

Example #1

Java program to throw NoSuchElementExceptionas there is no element in HashSet.

Code:

import java.util.HashSet;
import java.util.Set;
//class
public class NoExample {
//main method
public static void main(String[] args) {
//create an object for set s
Set s = new HashSet();
//select the next element
s.iterator().next();
}  }
Copy after login

Output:

Java NoSuchElementException

In this program, a hashset is created first, and the next element in the set is selected using the next() method. As there is no element in the set, NoSuchElementException is thrown. In order to avoid this, a check can be given before iterating the setas shown below.

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
//class
public class NoExample {
//main method
public static void main(String[] args) {
Set e = new HashSet();
Iterator it = e.iterator();
//checks whether any element is present
while(it.hasNext()) {
System.out.println(it.next());
}
}
}
Copy after login

To check the presence of elements, a while loop and an iterator are added to the existing program. If this code is executed, it can be seen that no exceptions are thrown.

Example #2

Java program to throw NoSuchElementException as there is no element in HashTable

Code:

import java.util.Hashtable;
//class
public class NoExample {
//main method
public static void main(String[] args) {
//create an object for hashtable s
Hashtable s = new Hashtable();
//select the next element
s.elements().nextElement();
}  }
Copy after login

Output:

Java NoSuchElementException

In this program, a hash table is created first, and the next element in the table is selected using the nextElement() method. As there is no element in the table, NoSuchElementException is thrown. In order to avoid this, a check can be given before iterating the table, as shown below.

import java.util.Hashtable;
import java.util.Iterator;
import java.util.Set;
//class
public class NoExample {
//main method
public static void main(String[] args) {
//create an object for hashtable s
Hashtable s = new Hashtable();
Set<String>k = s.keySet();
Iterator<String>i = k.iterator();
while (i.hasNext()) {
System.out.println(i.next());
}
}  }
Copy after login

In order to check the presence of elements, a while loop, a set, and an iterator is added to the existing program. If this code is executed, it can be seen that no exceptions are thrown.

Example #3

Java program to throw NoSuchElementException as there is no element in StringTokenizer and Enumeration.

Code:

import java.util.Enumeration;
import java.util.Hashtable;
import java.util.StringTokenizer;
//class
public class NoExample {
private final static int el = 2;
//main method
public static void main(String[] args) {
//declare a string
String sn= "Happy Days never ends";
Hashtable s= new Hashtable(el);
Enumeration t = s.elements();
//create an object for StringTokenizer
StringTokenizer st = new StringTokenizer(sn, " ");
//Print the tokens
System.out.println(st.nextToken());
System.out.println(st.nextToken());
System.out.println(st.nextToken());
System.out.println(st.nextToken());
System.out.println(st.nextToken());
st.nextToken();
st.nextElement();
System.out.println(t.nextElement());
System.out.println(t.nextElement());
}
}
Copy after login

Output:

Java NoSuchElementException

In this program, a StringTokenizer is created first, and tokens are selected five times. As there are only four tokens, NoSuchElementException is thrown. In order to avoid this, a check can be given before iterating the Tokenizeras shown below.

import java.util.Enumeration;
import java.util.Hashtable;
import java.util.StringTokenizer;
//class
public class NoExample {
private final static int el = 2;
//main method
public static void main(String[] args) {
//declare a string
String sn= "Happy Days never ends";
Hashtable s= new Hashtable(el);
Enumeration t = s.elements();
//create an object for StringTokenizer
StringTokenizer st = new StringTokenizer(sn, " ");
while(st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
}
}
Copy after login

In order to check the presence of elements, a while loop is added to the existing program. If this code is executed, it can be seen that no exceptions are thrown.

Java NoSuchElementException

Conclusion

NoSuchElementException is an exception that is thrown when there are no elements retrieved on calling the method next( ) and nextElement( ) in classes Iterator, StringTokenizer, Enumeration and NamingEnumeration. In this article, different aspects such as the declaration, working, constructors, and examples of NoSuchElementException is explained in detail.

The above is the detailed content of Java NoSuchElementException. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template