JavaのListに対してIndexOutOfBoundsExceptionをキャッチしようとすると、問題が発生していました。その後、私はトライキャッチを実行しようとしましたJava try catchが処理されないIndexOutOfBoundsException
List<String> list = new ArrayList<>(Arrays.asList("item1", "item2"));
::私はオプションのために2よりも大きな何かを入力したときに
do {
for (int i = 0; i < list.size(); i++) {
System.out.print("(" + (i + 1) + ")" + list.get(i));
}
System.out.println(" ");
try{
option = sc.nextInt();
} catch (IndexOutOfBoundsException e){
System.out.println("Invalid option");
sc.next();
continue;
} catch (InputMismatchException e) {
System.out.println("Option input mismatch.");
sc.next();
continue;
}
sc.nextLine();
if (option == 1) {
System.out.print("Enter name: ");
// scanner takes in input
} else if (option == 2) {
System.out.print("Enter desc: ");
// scanner takes in input
}
type = list.get((option - 1));
} while (option <= 0 || option >= 3);
しかし、それは例外を私にIndexOutOfBounds投げたので、私は2つの要素との私のリストを宣言しました私はすでにそれを試してみたと思った?
ありがとうございます。
投稿したコードの中で 'list'は何もしていませんか? – brso05
'nextInt'が' IndexOutOfBoundsException'を投げるのはなぜですか?実際にそれを投げたコードを含めてください。 – rgettman
例外があなたの 'list'から来ている場合、' try'ブロックは 'list'を使って例外を捕まえることができるコードを含んでいなければなりません。 – khelwood