문제
다음 Java 코드에 method(5, 5)를 호출했을 때의 출력 결과로 알맞은 것은?
Javavoid method(int a, int b) { try { int[] arr = new int[a]; System.out.print("A"); arr[b] = 10; System.out.print("B"); } catch (Exception e) { System.out.print("C"); } finally { System.out.print("D"); } }
① AC ② ACD ③ ABD ④ ABCD
정답
2번
해설
정답: 2. 배열 크기가 5이면 유효 인덱스는 0~4인데 arr[5] 접근에서 예외가 발생한다. 따라서 A 출력 후 catch에서 C, finally에서 D가 이어서 출력된다.
오답 풀이
- 1번: finally 블록의 D 출력이 빠져 있다.
- 2번: A 출력 후 예외 발생, C와 D가 이어져 정확하다.
- 3번: arr[5]에서 예외가 발생하므로 B는 출력되지 않는다.
- 4번: B는 출력되지 않는다.
보충 개념 Java 배열은 인덱스 범위를 벗어나면 ArrayIndexOutOfBoundsException을 발생시킨다.