You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不使用try-catch解决Scanner类的SIGHUP与NoSuchElementException问题

问题解决:避免Scanner的NoSuchElementException(无需try-catch)

问题原因

当Scanner.next()尝试读取输入但无可用输入时,会抛出NoSuchElementException。在线IDE中如果未提供输入、输入提前结束,或者环境的输入流被中断(关联Hangup错误),都会触发这个异常。

解决方案

在调用next()前,先用*hasNext()*判断是否还有输入可读,就能从根源避免异常:

import java.util.*;

class GFG {
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        
        if(sc.hasNext()) {
            String name = sc.next();
            System.out.println("读取到输入:" + name);
        }
        System.out.println("No more input to read");
    }
}

说明

  • *hasNext()*会检查输入流中是否存在下一个可读取元素,返回布尔值且不会抛出异常
  • 即使在线IDE未提供输入,代码也能正常执行到后续输出,既不会触发NoSuchElementException,也能缓解Hangup相关的环境问题

内容的提问来源于stack exchange,提问作者Swati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 00:52:03