在尝试学习如何处理Java中的异常时,我注意到了这一点:
int[] intArray = new int[4];
void eDemoI(int i) {
try {
int myInt = intArray[i];
} catch (ArrayIndexOutOfBoundsException e) {
System.err.println("Your index was out of bounds.");
} finally {
System.out.println("This line always prints.");
}
}
public static void main(String[] args) {
ExceptionHandlingPractice P = new ExceptionHandlingPractice();
P.eDemoI(5);
}
这是我感到困惑的地方。
如果我使用相同的输入(在这种情况下,5)背靠背运行几次,我似乎随机获得三个输出中的一个:
一:
Your index was out of bounds.This line always prints.
两个
Your index was out of bounds.
This line always prints.
三
This line always prints.
Your index was out of bounds.
这给我带来了这些问题:
为什么输出顺序会在catch
和finally
块之间发生变化?通过阅读诸如this之类的帖子,我希望它们在每次执行时以相同的顺序输出。
请注意,示例输出 One 表示句子之间缺少换行符。为什么呢?
感谢您的帮助。