gpt4 book ai didi

java - 异常处理恢复行为

转载 作者:行者123 更新时间:2023-11-29 05:49:19 26 4
gpt4 key购买 nike

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 block 。我不明白的是,在这段代码中,程序只运行到第一个非异常发生的实例发生,然后它退出 while 循环。

我的理解是,while 循环会一直运行,直到内存不足,所以有人可以解释代码如何在非异常的第一个实例中退出 while 循环。

谢谢!

马可

最佳答案

首先,x 等于 5,然后程序进入 while 循环。由于 5 大于数组的大小,它将给出异常并转到异常 block 。在这里,x 将减少并再次进入 while 循环。直到x达到2,再无异常;因此,它可以到达 break 行。因此,程序可以退出 while 循环并完成

关于java - 异常处理恢复行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14578432/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com