[Java 예외] Java 7의 try-with-resources와 AutoCloseable 인터페이스
Java 7부터 도입된 try-with-resources는 자원을 자동으로 닫아주는 기능으로, AutoCloseable 인터페이스를 구현한 클래스에서만 사용 가능합니다.
try-with-resources 기본 구문
단일 리소스 사용
괄호()를 사용하는게 큰 특징!
try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
String line = br.readLine();
// 리소스 사용 코드
} catch (IOException e) {
e.printStackTrace();
//br.close(); 가 필요없음. 자동으로 해줌!
}
다중 리소스 사용
세미콜론(;) 으로 구분하는게 큰 특징!
try (FileInputStream fis = new FileInputStream("input.txt");
BufferedInputStream bis = new BufferedInputStream(fis)) {
// 여러 리소스 사용 코드
}
주의사항
오히려 자동으로 자원 반환해서 필요할 때 해당 자원을 사용 못 할수도 있으니, 삽질하지말고 이 부분은 항상 유의하고 사용하길 권장!
💡 장점
- 자원 누수 방지
- 코드 간결성 향상
- 예외 처리 용이
⚡ 주의점
- 자동 close()로 인한 리소스 재사용 불가
- AutoCloseable 구현체만 사용 가능
- close() 시점 정확히 인지 필요
try-with-resources는 효율적인 자원 관리를 제공하지만, 리소스의 생명주기를 정확히 이해하고 사용해야 합니다.
댓글남기기