본문 바로가기

JAVA

try-with-resource

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