[java] try-with-resources 문은 어떤 예외 처리 방식을 제공하나요?

자바 7부터 도입된 try-with-resources 문은 AutoCloseable 인터페이스를 구현한 자원을 try 블록 내에서 사용할 때, 자원 사용이 끝나면 자동으로 자원을 닫아주는 기능을 제공합니다. 이때 자원을 닫을 때 발생할 수 있는 예외도 처리할 수 있습니다.

아래는 try-with-resources 문의 예시 코드입니다.

try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) {
    String line = reader.readLine();
    System.out.println(line);
} catch (IOException e) {
    System.err.println("Error reading from file: " + e.getMessage());
}

위 코드에서 BufferedReaderAutoCloseable을 구현하고 있으므로, try-with-resources 문을 사용하여 reader의 자원을 안전하게 사용하고 닫을 수 있습니다. 만약 자원을 닫을 때 예외가 발생한다면 catch 블록에서 해당 예외를 처리할 수 있습니다.

이를 통해 코드가 더 간결해지고 자원 관리에 대한 부담을 줄일 수 있습니다.

참고문헌: