close를 통해서 직접 닫아줘야되는 resource를 사용하는 경우 try-with-resource를 사용해서 자동으로 close를 시켜줄 수 있다. 자원들은 AutoCloseable interface를 구현해야한다.
아래와 같이 여러개의 자원을 사용하는 코드를 작성할 수 있다. 이 때는 자원을 생성한 순서의 역순으로 close를 해준다.
public class Main {
public static void main(String[] args) throws Exception {
try (TestResource testResource = new TestResource("1");
TestResource testResource2 = new TestResource("2")) {
System.out.println("in try");
throw new Exception();
} catch (Exception e) {
System.out.println("in catch");
} finally {
System.out.println("finally");
}
}
}
class TestResource implements AutoCloseable {
private String name;
public TestResource(String name) {
this.name = name;
}
@Override
public void close() throws Exception {
System.out.println(name + " close");
}
}
출력 결과
> Task :Main.main()
in try
2 close
1 close
in catch
finally
반응형
'JAVA' 카테고리의 다른 글
Checked Exception 과 Unchecked Exception (0) | 2023.06.21 |
---|---|
AOP 용어 정리 (0) | 2023.04.16 |
sum 에 wrapper class를 쓰면? (0) | 2022.05.03 |
도메인 주도 설계 - 1부 동작하는 도메인 모델 만들기 (0) | 2022.04.19 |
Adapter Pattern 과 SLF4J (0) | 2021.08.27 |