JAVA使用sc.nextint输入非整数怎么捕获异常?

如题所述

在Java中,如果您试图使用 sc.nextInt() 输入非整数值,则会引发 InputMismatchException 异常。您可以使用 try-catch 块来处理此异常并向用户显示错误消息。
以下是一个示例代码:
import java.util.Scanner;import java.util.InputMismatchException;public class InputMismatchExample { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num; try {
System.out.print("请输入一个整数:");
num = sc.nextInt();
System.out.println("输入的整数是:" + num);
} catch (InputMismatchException e) {
System.out.println("输入的不是整数,请重新输入。");
sc.nextLine(); // 清除输入缓冲区
}
}
}

在上面的代码中,我们首先使用 nextInt() 方法尝试读取用户输入的整数。如果输入值不是整数,则捕获 InputMismatchException 并向用户显示错误消息。
请注意,在 catch 块中,我们还调用了 nextLine() 方法清除输入缓冲区,以便用户可以重新输入正确的值。如果不进行这个操作,输入缓冲区中可能仍然包含无效的值,将导致程序跳过下一次输入。
使用类似于上面的示例代码,可以帮助您在Java中捕获输入非整数的异常。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-05-10
如果使用sc.nextInt()输入的数据不是整数,会导致InputMismatchException异常的抛出。为了捕获这个异常,可以在代码中使用try-catch块来处理。
以下是示例代码:
```
import java.util.InputMismatchException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try {
int num = scanner.nextInt();
System.out.println("输入的整数为:" + num);
} catch (InputMismatchException e) {
System.out.println("输入错误,请重新输入。");
scanner.next(); // 清空scanner缓冲区
}
}
}
```
在上面的代码中,try块首先尝试读取一个整数,如果读取到的不是整数,则会抛出InputMismatchException异常。catch块会捕获这个异常,并输出一个错误提示信息。此外,我们还需要通过scanner.next()方法来清空scanner缓冲区,否则下一次输入也可能会被认为是错误的非整数数据。
相似回答