Java · 예외·연습 문제

finally 와 출력 순서

문제 설명PROBLEM

finally 와 출력 순서

문제

try에서 객체를 조기 반환해도 finally가 실행되어 로그가 추가되는 흐름을 구현하세요.

구현할 함수

static TraceResult traceFinally(boolean earlyReturn)

입력

boolean 값 true 또는 false가 주어집니다.

입력 파싱과 결과 출력은 숨겨진 I/O 어댑터가 자동으로 처리합니다. 에디터에는 요구된 함수 또는 메서드 구현만 작성하세요.

출력

true면 try|finally, false면 try|normal|finally를 출력합니다.

구현 조건

  • TraceResult라는 가변 결과 객체를 사용하세요.
  • earlyReturn이 true일 때 try 블록에서 그 객체를 return하세요.
  • finally 블록에서 같은 객체의 log에 |finally를 추가하세요.

공개 테스트

아래 테스트를 각각 독립된 프로세스로 실행합니다. 입력과 기대 출력은 실제 채점 순서와 같습니다.

#이름InputExpected output
1조기 반환truetry|finally
2정상 흐름falsetry|normal|finally
개념 노트와 실수 포인트

예외 처리

  • 흐름: try 에서 예외 발생 → 이후 코드 건너뛰고 맞는 catch 로. finally 는 (return 이 있어도) 항상 실행.
  • 예: 10/0ArithmeticException, 잘못된 인덱스 → ArrayIndexOutOfBoundsException.
  • ⚠️ 출력 순서 문제 단골 — 예외 발생 지점 이후 try 코드는 실행 안 됨.