try-catch-finally의 실행 순서의 선택 기준을 나란히 비교한다
비교 항목: try에는 함께 실패 처리할 코드만 둔다 / 다중 catch는 같은 처리를 공유한다 / finally의 return은 원래 결과를 덮어쓴다
| 확인 질문 | 판단 근거 | 코드에서 드러낼 것 |
|---|---|---|
| try에는 함께 실패 처리할 코드만 둔다 | 너무 넓게 감싸면 어느 문장에서 난 예외인지와 어떤 상태가 변경됐는지 알기 어렵습니다. | 타입과 시작값 |
| 다중 catch는 같은 처리를 공유한다 | 관련 없는 여러 예외에 완전히 같은 복구가 필요하면 catch (A | B error)로 묶습니다. | 실패 또는 변경 경계 |
| finally의 return은 원래 결과를 덮어쓴다 | finally에서 반환하거나 새 예외를 던지면 try의 결과와 예외가 사라질 수 있습니다. | 선택한 규칙의 결과 |
선택 기준 finally에서 반환하거나 새 예외를 던지면 try의 결과와 예외가 사라질 수 있습니다.