java - catch语句重复执行

标签 java

我正在尝试实现一个(重新)try-catch block 。

Scanner sc = new Scanner(System.in);

while (true){
    try {
        t = sc.nextInt();
        break;
    } catch (Exception e) {
        System.out.println("Please enter a whole number without any symbol(s)!");
    }
}

但这里的问题是,控件再次进入它到达的 catch block ,并且在此之前从未尝试执行 try block 。

最佳答案

这是我解决这个问题的方法...

/*java.util.*/Scanner sc = new /*java.util.*/Scanner(System.in);

while(true)
{
  if(sc.hasNextInt()){ t=sc.nextInt(); break;}
  System.out.println("Please enter a whole number integer (between -2,147,483,649 and 2,147,483,648) without any symbol(s)!");
  sc.nextLine(); // hasNextInt() only scans the current line in the buffer
}

关于java - catch语句重复执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61027688/

相关文章:

java - toJSONString() 未为 JSONObject 类型定义

Java Spring Sleuth Zipkin - X-Span-Export 未显示

java - 将 ObjectS 实例化为 Object 如何工作?这里发生了什么?

java - 如果值不是 Json 格式,则不反序列化值

Java - Eclipse 上的类路径问题

java - ActiveMQ - 创建监听 SSL (TLS) 传输错误的嵌入式代理

java - Java StdIn.isEmpty() 的 C++ 等价物是什么

java - 不能投通用集?

java - 发送前编辑 HTML 响应

java - OpenPDF:表格不在页脚中