public class Example 19 {
public static void main(String[] args) {
int a[] = {1, 2, 3, 4}; // 배열 a를 [1, 2, 3, 4]로 초기화
try {
for(int i = 0; i <= 4; i++) { // i를 0부터 4까지 반복
System.out.print(a[i]); // a[i]의 값을 출력
}
System.out.println(); // 줄바꿈 출력
}
catch(ArithmeticException e){ // 산술 예외 발생 시
System.out.print("A"); // "A" 출력
}
catch(ArrayIndexOutOfBoundsException e) { // 배열 인덱스 초과 예외 발생 시
System.out.print("B"); // "B" 출력
}
finally { // 예외 발생 여부와 관계없이 무조건 실행
System.out.print("C"); // "C" 출력
}
}
}
코드 실행 과정
- 배열 초기화 및 반복문 실행:
- 배열 a를 [1, 2, 3, 4]로 초기화합니다.
- try 블록의 for 반복문은 i = 0부터 i = 4까지 반복합니다.
-
javaint a[] = {1, 2, 3, 4};
- 반복문 동작:
- i = 0, 1, 2, 3일 때는 a[0], a[1], a[2], a[3] 값이 각각 1, 2, 3, 4로 출력됩니다.
- i = 4가 되면, 배열의 인덱스 범위를 초과하여 ArrayIndexOutOfBoundsException 예외가 발생합니다.
-
javafor(int i = 0; i <= 4; i++) { System.out.print(a[i]); }
- 예외 발생 및 처리:
- i = 4일 때 배열 인덱스를 초과하므로 ArrayIndexOutOfBoundsException 예외가 발생하고, 해당 예외를 처리하는 catch 블록이 실행됩니다.
javacatch(ArrayIndexOutOfBoundsException e) { System.out.print("B"); }- 따라서 "B"가 출력됩니다.
- finally 블록 실행:
- 예외 발생 여부와 관계없이 finally 블록이 무조건 실행됩니다.
- "C"가 출력됩니다.
-
javafinally { System.out.print("C"); }
최종 출력 결과
- 1, 2, 3, 4는 try 블록 내에서 출력된 배열의 값입니다.
- "B"는 ArrayIndexOutOfBoundsException 예외 발생 시 catch 블록에서 출력된 값입니다.
- "C"는 finally 블록에서 출력된 값입니다.
따라서 최종적으로 콘솔에 출력되는 결과는:
1234BC
상세 설명
- 배열 인덱스 초과 예외: for 반복문에서 i가 4일 때 a[4]에 접근하려고 시도하지만, 배열 a는 인덱스 0~3까지만 접근할 수 있습니다. 이로 인해 ArrayIndexOutOfBoundsException 예외가 발생합니다.
- catch 블록 동작: catch(ArrayIndexOutOfBoundsException e) 블록이 예외를 처리하며 "B"를 출력합니다.
- finally 블록의 실행 보장: finally 블록은 예외가 발생하더라도 무조건 실행되므로 "C"가 출력됩니다.
'전산 관련 시험 > 프로그래밍(C, JAVA, Python)' 카테고리의 다른 글
[JAVA] 프로그래밍 언어 (23.01 01) (1) | 2024.10.06 |
---|---|
[JAVA] 프로그래밍 언어 (ex.18) (1) | 2024.10.06 |
[JAVA] 프로그래밍 언어 (24.01 01) (1) | 2024.10.06 |
[Python] 프로그래밍 언어 (23.02 19) (0) | 2024.10.06 |
[C] 프로그래밍 언어 (선택 정렬 알고리즘) (23.02 18) (1) | 2024.10.06 |
댓글