try-with-resources와 오류 보존의 선택 기준을 나란히 비교한다
비교 항목: AutoCloseable 자원을 괄호 안에 선언한다 / 자원을 만든 계층이 닫을 책임을 갖는다 / 호출자가 소유한 자원은 임의로 닫지 않는다
| 확인 질문 | 판단 근거 | 코드에서 드러낼 것 |
|---|---|---|
| AutoCloseable 자원을 괄호 안에 선언한다 | try 블록을 벗어날 때 성공 여부와 관계없이 close가 호출됩니다. | 타입과 시작값 |
| 자원을 만든 계층이 닫을 책임을 갖는다 | 호출자가 전달한 스트림을 임의로 닫으면 이후 사용을 깨뜨릴 수 있습니다. | 실패 또는 변경 경계 |
| 호출자가 소유한 자원은 임의로 닫지 않는다 | 메서드가 생성한 자원은 메서드가 닫고 외부에서 받은 스트림은 소유권 계약을 따릅니다. | 선택한 규칙의 결과 |
선택 기준 메서드가 생성한 자원은 메서드가 닫고 외부에서 받은 스트림은 소유권 계약을 따릅니다.