CH12-4 · MODEL

try-with-resources와 오류 보존: 먼저 구분할 경계

파일과 소켓처럼 사용 뒤 닫아야 하는 자원은 정상 경로뿐 아니라 모든 실패 경로에서 정리돼야 합니다.

핵심 경계

AutoCloseable 자원을 괄호 안에 선언한다

try 블록을 벗어날 때 성공 여부와 관계없이 close가 호출됩니다.

핵심 경계

여러 자원은 선언의 역순으로 닫힌다

Reader가 InputStream 위에 있다면 Reader를 나중에 선언해 먼저 닫히게 합니다.

핵심 경계

본문 실패가 주 예외로 남는다

close도 실패하면 getSuppressed()로 추가 예외를 확인할 수 있습니다.

핵심 경계 try 블록을 벗어날 때 성공 여부와 관계없이 close가 호출됩니다.