문제
다음 Java 코드의 실행 결과를 쓰시오.
Javapublic class Main { static String process() { try { throw new RuntimeException(); } catch (RuntimeException e) { try { return "A"; } finally { System.out.print("B"); } } finally { System.out.print("C"); } } public static void main(String[] args) { System.out.print(process()); } }
정답
BCA
BCA
해설
RuntimeException이 발생해 catch로 이동한다. catch 내부 try에서 return "A"가 결정되지만, 먼저 내부 finally가 실행되어 B를 출력한다. 그 뒤 외부 finally가 실행되어 C를 출력한다. 마지막으로 반환값 A가 출력되어 최종 결과는 BCA이다.