我有這樣的代碼嘗試捕捉
package example;
import java.util.InputMismatchException;
import java.util.Scanner;
public class Example {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int rep;
int[] arraya = new int[2];
do {
try {
rep = 0;
System.out.print("input col :");
int kol = input.nextInt();
System.out.print("input value :");
int val = input.nextInt();
arraya[kol] = val;
} catch (InputMismatchException e) {
System.out.println("input must integer");
rep = 1;
input.next();
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("out of range");
rep = 1;
}
} while (rep == 1);
}
}
爲什麼一定要我在catch(InputMismatchException e);
添加input.next();
避免無限循環?
爲什麼catch(ArrayIndexOutOfBoundsException e);
不需要input.next();
以避免無限循環?
在catch(ArrayIndexOutOfBoundsException e);
,循環運行良好沒有input.next();
爲什麼它不同於catch(InputMismatchException e);
?
您不應該捕獲'ArrayIndexOutOfBoundsException'。你應該修復導致它的錯誤。 – EJP
@EJP感謝您的回覆,我讓代碼知道'ArrayIndexOutOfBoundsException'和'InputMismatchException'爲什麼他們在循環中處理不同之間有什麼不同 – fikriarroisi