новое для 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.");
}
}
Я все еще пытаюсь получить мою голову вокруг попробовать, улов и, наконец, блоки. Я не понимаю, что в этом коде программа работает только до первого экземпляра, когда происходит не исключение, и затем он выходит из цикла while.
Я понимаю, что цикл while будет работать до тех пор, пока у вас не закончится память, поэтому кто-то может объяснить, как код выходит из цикла while в первом экземпляре исключений.
Спасибо!
Marco
Извините, я только что понял, что есть ключевое слово break. Но чтобы уточнить, блок finally будет выполнен независимо от того, как мы выходим из блока try, как в этом примере, в котором мы вышли из блока try, а также цикла while? – SeekingAlpha
'finally' block всегда запускается, если вы не выполнили' System.exit() 'в блоке' try/catch' –