반응형

try-with-resources

- catch 구문 생략가능. finally안의 복잡한 try-catch를 해결하기 위해 나온 문법

  try에 이어 등장하는 소괄호 안에서는(resource라고 쓰여 있는 위치에서는) 종료의 과정을 필요로 하는

  리소스를 생성할 수 있다. 이 리소스는 try-with-resources 문을 빠져나오면서 자동으로 종료가 된다.

try ( resource ) {
	. . . 
}
catch ( Exception name ) { 
	. . . 
}

 

java.lang.AutoCloseable

이 인터페이스는 try-with-resources문에 의해 자동으로 종료되어야 할 리소스 관련 클래스가 반드시 구현해야 하는 인터페이스이다.

 

이 인터페이스에는 다음 추상 메소드가 존재한다.

- void close() throws Exception

try-with-resoureces문에서 호출하는 메소드는 AutoCloseable 인터페이스의 close 메소드이다.

따라서 close 이외의 메소드 호출은 하지 않는다.

 

둘 이상의 리소스에 대해서도 try-with-resources문을 구성할 수 있다.

세미콜론으로 리소스를 구분하면 된다.

try( resource1; resource2 ) {
	. . . 
}
catch(Exception name) {
	. . . 
}

 

try-with-resources문을 사용하면 코드가 훨씬 간결해진다.

try 구문 안에 위치한 코드는 try 구문 밖에 위치한 코드에 비해 실행 속도가 느리다.

   따라서 과도한 예외처리는 성능의 저하로 이어질 수 있다.

     -> 예외처리가 불필요한 코드를 try구문 안에 두는 일을 자제해야 한다.

   모든 예외를 민감하게 처리하는 프로그램은 생각보다 많지 않다.

   규모가 클수록, 성능이 중요시될수록 try~catch문 이외의 다양한 방법으로

   그리고 선별적으로 예외를 처리한다.

 

 

 

[참고자료]

윤성우의 열혈 Java 프로그래밍

반응형

'Java > 기본' 카테고리의 다른 글

자바(Java) - JVM 구조 이해하기  (0) 2021.05.24
자바(Java) - JVM, JDK, JRE 차이점 이해하기  (0) 2021.05.23
자바(Java) - 예외처리  (0) 2020.03.01
자바(Java) - 추상 클래스  (0) 2020.02.29
자바(Java) - 인터페이스  (0) 2020.02.27

+ Recent posts