Menyahpepijat NoSuchElementException dalam Java
Apabila menghadapi "NoSuchElementException" semasa menggunakan kelas Pengimbas Java, ia menunjukkan percanggahan antara input yang disediakan dan jangkaan kelas. Ralat berlaku apabila Pengimbas cuba mendapatkan nilai tetapi tiada satu pun ditemui.
Pertimbangkan coretan kod berikut:
import java.util.Scanner; public class Addition { public static void main(String[] args) { Scanner input = new Scanner(System.in); int number1, number2, sum; System.out.print("Enter First Integer: "); number1 = input.nextInt(); System.out.print("Enter Second Integer: "); number2 = input.nextInt(); sum = number1 + number2; System.out.printf("Sum is %d\n", sum); } }
Jika pengguna memasukkan hanya satu integer dan menekan enter sebelum memasukkan kedua, ia akan membuang a NoSuchElementException.
Penyelesaian
Untuk menyelesaikan isu ini, semak ketersediaan integer lain sebelum membacanya. Berikut ialah versi kod yang diubah suai:
if (input.hasNextInt()) { number1 = input.nextInt(); } else { // Handle input error or set number1 to a default value }
Dengan memasukkan semakan ini, kod memastikan ia hanya membaca integer apabila ada, menghalang pengecualian.
Alternatif Pilihan
Pendekatan lain ialah menggunakan kaedah hasNextLine() untuk menyemak sama ada terdapat sebarang input lanjut dan kemudian panggil nextLine() untuk mengosongkan penimbal sebelum cuba mendapatkan integer lain.
Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan `NoSuchElementException` Apabila Menggunakan `Pengimbas` Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!