第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缓冲区,否则下一次输入也可能会被认为是错误的非整数数据。