Java的Scanner类在处理输入异常时,通常使用try-catch语句来捕获和处理可能出现的异常。这些异常可能包括NoSuchElementException、IllegalStateException、InputMismatchException等。下面是一个简单的示例,展示了如何使用try-catch处理输入异常:
import java.util.InputMismatchException;
import java.util.Scanner;
public class ScannerExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
boolean validInput = false;
while (!validInput) {
try {
System.out.print("请输入一个整数: ");
int input = scanner.nextInt();
validInput = true;
} catch (InputMismatchException e) {
System.out.println("输入错误,请输入一个整数!");
scanner.next(); // 清除错误的输入
} catch (NoSuchElementException | IllegalStateException e) {
System.out.println("发生异常,程序将关闭。");
scanner.close();
return;
}
}
System.out.println("您输入的整数是: " + input);
scanner.close();
}
}
在这个示例中,我们使用try-catch语句捕获了可能出现的InputMismatchException异常。如果用户输入的不是整数,程序会捕获到这个异常,并提示用户重新输入。同时,我们还捕获了NoSuchElementException和IllegalStateException异常,以处理其他可能的输入错误。