如何解决这段Java代码中的java.util.NoSuchElementException异常?
解决java.util.NoSuchElementException异常问题
异常原因
java.util.NoSuchElementException: No line found 表示Scanner尝试读取输入时,输入流已无可用内容。常见触发场景:
- 运行环境未提供输入交互机会(比如在线编译器未配置输入区域)
- 输入流被提前关闭
- 程序执行时未输入任何数据就结束
解决方案
1. 确保输入环境正常
IDE运行时确认控制台可正常输入;在线编译器需在输入区域按顺序提供数据(先输入姓名回车,再输入年龄)。
2. 添加输入检查逻辑
读取输入前先判断是否有可用内容,避免直接读取引发异常,修改后的代码如下:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Enter your name : "); String name = ""; // 检查是否有可用行输入 if (sc.hasNextLine()) { name = sc.nextLine(); } System.out.println("Enter your age : "); int age = 0; // 检查是否有可用整数输入 if (sc.hasNextInt()) { age = sc.nextInt(); } System.out.println("hello " + name + ". you're " + age + " old."); sc.close(); } }
额外说明
若代码在自动化测试、管道输入等特殊场景运行,需确保输入流始终可用,或提前准备好对应输入数据。
内容的提问来源于stack exchange,提问作者Vaishnavi Pounikar
相关产品推荐
相关产品推荐

