공부 기록/Java
[이펙티브 자바 3/E] 아이템9 - try-finally보다는 try-with-resources를 사용하라
yurison
2023. 7. 19. 11:18
- 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를 사용하자. 코드는 더 짧고 분명해지고, 만들어지는 예외 정보도 훨씬 유용하다. 또한 정확하고 쉽게 자원을 회수할 수 있다.