Rumah  >  Artikel  >  Java  >  Java NoSuchElementException

Java NoSuchElementException

PHPz
PHPzasal
2024-08-30 16:13:181006semak imbas

Kaedah nextElement membuang NoSuchElementExceptionin Java dalam Enumeration, kaedah seterusnya dalam NamingEnumeration, dsb. Ia menandakan bahawa tiada lagi elemen dalam enumeration. Pengecualian ini ialah subkelas pengecualian RuntimeException dan melaksanakan antara muka Serializable. Sebagai tambahan kepada Penghitungan, terdapat beberapa kelas lain membuang pengecualian ini. Berikut ialah kelas yang berbeza dan kaedahnya.

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

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

Sintaks, kerja, pembina dan contoh NoSuchElementException akan diterangkan dalam bahagian berikut.

Pengisytiharan:

Berikut ialah pengisytiharan NoSuchElementException.

public class NoSuchElementExceptionextends RuntimeException

Bagaimana NoSuchElementException Berfungsi dalam Java?

Seperti yang kita ketahui, pengecualian adalah ralat yang berlaku semasa pelaksanaan program. Program akan ditamatkan, dan baris kod selepas baris yang menyebabkan pengecualian tidak akan dilaksanakan apabila pengecualian dilemparkan. Terdapat situasi yang berbeza di manaNosuchElementException dilemparkan. Mereka ialah:

  • NosuchElementException dilemparkan semasa masa larian untuk memanggil kaedah nextElement( ) kelas Enumeration pada objek enumeration anull, atau kedudukan sekarang ialah Enumeration end.
  • NosuchElementException dilemparkan semasa masa larian semasa memanggil kaedah nextElement( ) atau nextToken() kelas StringTokenizer pada objek penghitungan anul atau, kedudukan sekarang ialahStringTokenizerend.
  • NosuchElementException dilemparkan semasa masa larian semasa memanggil kaedah next( ) kelas Iterator pada objek Iterator anull atau, kedudukan sekarang ialahIterator hujung.
  • NosuchElementException dilemparkan semasa masa larian semasa memanggil kaedah next( ) kelas ListIteratoron anull ListIteratorobject atau, kedudukan sekarang ialahListIteratorend.
  • NosuchElementException dilemparkan semasa masa larian semasa memanggil kaedah sebelumnya ( ) kelas ListIteratoron anull ListIteratorobject atau, kedudukan sekarang ialahListIteratorstart.

Pembina

Berikut ialah dua pembina NoSuchElementException

  • NoSuchElementException(): NoSuchElementException akan dibina tanpa memberikan sebarang mesej ralat atau pemberitahuan sebagai rentetan.
  • NoSuchElementException(Stringst): NoSuchElementException akan dibina yang menyediakan mesej ralat atau pemberitahuan sebagai string st. Ini digunakan untuk mendapatkan semula kemudian dengan bantuan kaedah getMessage. Nama kelas yang mengandungi ralat akan terdapat dalam rentetan st.

Contoh Java NoSuchElementException

Mari kita lihat beberapa contoh program yang membuang NoSuchElementException dalam Java.

Contoh #1

Atur cara Java untuk membuang NoSuchElementException kerana tiada elemen dalam HashSet.

Kod:

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();
}  }

Output:

Java NoSuchElementException

Dalam program ini, set cincang dicipta dahulu, dan elemen seterusnya dalam set dipilih menggunakan kaedah seterusnya(). Oleh kerana tiada unsur dalam set, NoSuchElementException dibuang. Untuk mengelakkan perkara ini, semakan boleh diberikan sebelum mengulangi set yang ditunjukkan di bawah.

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());
}
}
}

Untuk menyemak kehadiran elemen, gelung sementara dan lelaran ditambahkan pada program sedia ada. Jika kod ini dilaksanakan, ia dapat dilihat bahawa tiada pengecualian dilemparkan.

Contoh #2

Program Java untuk membuang NoSuchElementException kerana tiada elemen dalam HashTable

Kod:

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();
}  }

Output:

Java NoSuchElementException

Dalam atur cara ini, jadual cincang dicipta dahulu, dan elemen seterusnya dalam jadual dipilih menggunakan kaedah nextElement(). Oleh kerana tiada unsur dalam jadual, NoSuchElementException dibuang. Untuk mengelakkan ini, semakan boleh diberikan sebelum melelaran jadual, seperti yang ditunjukkan di bawah.

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());
}
}  }

Untuk menyemak kehadiran elemen, gelung sementara, set dan iterator ditambahkan pada program sedia ada. Jika kod ini dilaksanakan, ia dapat dilihat bahawa tiada pengecualian dilemparkan.

Contoh #3

Program Java untuk membuang NoSuchElementException kerana tiada elemen dalam StringTokenizer dan Enumeration.

Kod:

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());
}
}

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());
}
}
}

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.

Atas ialah kandungan terperinci Java NoSuchElementException. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Jenis Pengecualian di JawaArtikel seterusnya:Jenis Pengecualian di Jawa