StackOverFlow の新機能であり、Java の新機能です。これより前に C でプログラミングしており、Java の基礎を習得しようとしています。
次のコードについて少し混乱しています。
public class Exercise5 {
private static int[] ia = new int[3];
static int x = 5;
public static void main(String[] args) {
while(true) {
try {
ia[x] = 1;
System.out.println(ia[x]);
break;
} catch(ArrayIndexOutOfBoundsException e) {
System.err.println(
"Caught ArrayIndexOutOfBoundsException");
e.printStackTrace();
x--;
} finally {
System.out.println("Are we done yet?");
}
}
System.out.println("Now, we're done.");
}
}
私はまだtry、catch、そしてfinallyブロックに頭を悩ませようとしています。私が理解していないのは、このコードでは、例外が発生しない最初のインスタンスが発生するまでプログラムが実行され、その後whileループを終了することです。
私の理解では、while ループはメモリがなくなるまで実行されるので、非例外の最初のインスタンスでコードが while ループを終了する方法を誰かが説明してください。
ありがとうございました!
マルコ