在 Java 中调试 NoSuchElementException
当使用 Java 的 Scanner 类时遇到“NoSuchElementException”时,表示提供的输入与班级的期望。当扫描仪尝试检索某个值但未找到任何值时,就会发生该错误。
请考虑以下代码片段:
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); } }
如果用户仅输入一个整数并在输入其次,它会抛出一个NoSuchElementException。
解决方案
要解决此问题,请在读取之前检查另一个整数的可用性。下面是代码的修改版本:
if (input.hasNextInt()) { number1 = input.nextInt(); } else { // Handle input error or set number1 to a default value }
通过合并此检查,代码可确保仅在可用时读取整数,从而防止出现异常。
替代方案Option
另一种方法是使用 hasNextLine() 方法检查是否有进一步的输入,然后调用nextLine() 在尝试检索另一个整数之前清除缓冲区。
以上是使用Java的'Scanner”时如何避免'NoSuchElementException”?的详细内容。更多信息请关注PHP中文网其他相关文章!