Java的Scanner類(lèi)在處理輸入異常時(shí),通常使用try-catch語(yǔ)句來(lái)捕獲和處理可能出現(xiàn)的異常。這些異??赡馨∟oSuchElementException、IllegalStateException、InputMismatchException等。下面是一個(gè)簡(jiǎn)單的示例,展示了如何使用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("請(qǐng)輸入一個(gè)整數(shù): ");
int input = scanner.nextInt();
validInput = true;
} catch (InputMismatchException e) {
System.out.println("輸入錯(cuò)誤,請(qǐng)輸入一個(gè)整數(shù)!");
scanner.next(); // 清除錯(cuò)誤的輸入
} catch (NoSuchElementException | IllegalStateException e) {
System.out.println("發(fā)生異常,程序?qū)㈥P(guān)閉。");
scanner.close();
return;
}
}
System.out.println("您輸入的整數(shù)是: " + input);
scanner.close();
}
}
在這個(gè)示例中,我們使用try-catch語(yǔ)句捕獲了可能出現(xiàn)的InputMismatchException異常。如果用戶(hù)輸入的不是整數(shù),程序會(huì)捕獲到這個(gè)異常,并提示用戶(hù)重新輸入。同時(shí),我們還捕獲了NoSuchElementException和IllegalStateException異常,以處理其他可能的輸入錯(cuò)誤。