- try-with-resources 구조를 사용하려면 해당 자원이 AutoCloseable 인터페이스를 구현해야 한다.
try-finally 구조를 사용한 예
static String firstLineOfFile(String path) throws IOException {
BufferedReader br = new BufferedReader(new FileReader(path));
try {
return br.readLine();
} finally {
br.close();
}
}
try-with-resources 구조를 사용한 예
static String firstLineOfFile(String path) throws IOException {
try (BufferedReader br = new BufferedReader(new FileReader(path))) {
return br.readLine();
}
}
- try-with-resources 버전이 짧고 읽기 수월할 뿐 아니라 문제를 진단하기도 훨씬 좋다.
- try-with-resources에서드 catch 절을 쓸 수 있다.
[핵심 정리]
꼭 회수해야 하는 자원을 다룰 때는 try-with-resources를 사용하자. 코드는 더 짧고 분명해지고, 만들어지는 예외 정보도 훨씬 유용하다. 또한 정확하고 쉽게 자원을 회수할 수 있다.
'공부 기록 > Java' 카테고리의 다른 글
[JPA] 4장 - 엔티티 매핑(1) (0) | 2023.07.30 |
---|---|
[이펙티브 자바 3/E] 아이템10 - equals는 일반 규약을 지켜 재정의하라 (0) | 2023.07.21 |
[이펙티브 자바 3/E] 아이템8 - finalizer와 cleaner 사용을 피하라 (0) | 2023.07.19 |
[이펙티브 자바 3/E] 아이템7 - 다 쓴 객체 참조를 해제하라 (0) | 2023.07.19 |
[이펙티브 자바 3/E] 아이템6 - 불필요한 객체 생성을 피하라 (0) | 2023.07.06 |