들어가기 전에
자원을 잡고, 놓아주는 작업을 try catch finally 문으로 만드는 과정은 상당히 복잡합니다.
그래서 자원을 잡고, 놓아주는 작업을 간단한 형식으로 만들 필요성이 생겼습니다.
이번 시간에는 try-with-resource 구문을 이용하여 자원 사용을 간단하게 하는 방법을 알아봅니다.
학습 목표
try-with-resource 구문을 이용하여 자원의 예외 처리를 간단하게 할 수 있습니다.
핵심 단어
강의 듣기
try-with-resource 문
Java SE 7 이전에는 우리가 지난 시간에 만들었던 코드와 같이 finally 문을 이용하여
자원을 놓아주는 작업을 진행하였습니다.
하지만 Java SE 7부터 try-with-resource 문이 등장하여 자원 관리를 훨씬 단순하게 할 수 있게 되었습니다.
클래스가 AutoCloseable 인터페이스를 상속한다면 try-with-resource 문에 사용할 수 있습니다.
import java.io.FileWriter;
import java.io.IOException;
public class TryWithResource {
public static void main(String[] args) {
try (FileWriter f = new FileWriter("data.txt")) {
f.write("Hello");
} catch (IOException e) {
e.printStackTrace();
}
}
}
try-with-resource 문은 try 문에 괄호를 추가하여 그 안에 사용할 자원을 정의합니다.
객체를 여러 개 선언할 수도 있고, 세미콜론(;)으로 구별합니다.
객체의 정의 가장 마지막에는 세미콜론(;)을 넣지 않습니다.
전체 try 문(try, catch, finally 등)이 종료되면 생성된 인스턴스는 자동으로 종료되기 때문에
명시적으로 close를 이용해서 자원을 놓아주지 않습니다.
생각해보기
1) try-with-resource 문을 사용할 때 주의할 점은 무엇인가요?
참고자료
comment
try문의 괄호 안에 들어가는 인스턴스 자원의 클래스가 "AutoCloseable"을 인터페이스로 가지고 있어야 합니다.
현재 사용하고 있는 자바의 버전이 7이상인지 확인