문제
아래 Java 코드의 출력 결과는?
Javapublic class Main { static void div(int a, int b) { try { System.out.print(a / b); } catch (ArithmeticException e) { System.out.print("err"); } finally { System.out.print("Done"); } } public static void main(String[] args) { div(5, 5); } }
① Done ② 1Done ③ err ④ 1
정답
2번
해설
정답: 2. 5/5=1이므로 예외가 발생하지 않으며, finally 블록은 항상 실행되어 ‘Done’이 이어서 출력된다.
오답 풀이
- 1번: try 블록의 출력 1이 빠진 결과이다.
- 2번: 1과 Done이 이어서 출력되어 ‘1Done’이 된다.
- 3번: 0으로 나눈 것이 아니므로 예외가 발생하지 않는다.
- 4번: finally 블록 출력이 빠진 결과이다.
보충 개념 finally 블록은 예외 발생 여부와 관계없이 항상 실행된다.