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異常,以處理其他可能的輸入錯誤。