LANGUAGE/Java & Groovy 2019. 8. 19. 12:23

Java (자바)

try with resources

  • Java7에서 시작
  • 자동으로 close()를 실행해준다.
  • 일반적으로 finally를 이용하여 직접 자원을 close시키는 것 보다 코드양이 줄어드는 try-with-resources방식을 사용하면 좀 더 가독성을 높일 수 있다.
  • 물론 try/catch/finally의 원리를 이해하고 있다는 전제하에 코드의 가독성과 효율을 높일 수 있다.

일반적인 TRY-CATCH 방식

  • 형식

    try{
      //New Resource Instance implemented by Closeable
      //Implements
    }catch(Exception e){
      //Exception
    }finally{
      //Close
    }

가독성이 좋은 TRY-WITH-RESROUCES 방식

  • 형식

    try( /* New Resource Instance implemented by Closeable */ ){
      //Implements
    }catch(Exception e){
      //Exception
    }
  • 예제

    byte[] buffer = new byte[2048];
    int len;
    try(FileInputStream fis = new FileInputStream("/path/to/file")){
      while ((len = fis.read(buffer)) > 0){
          //Somthing to do..
      }
    }catch(IOException e){
      e.printStackTrace();
    }
  • try() 구문 안에서 객체생성이 이루어져야한다.

  • 자동으로 close(자원해제)시킬 수 있다.

  • 세미콜론(;)을 구분자로 다중으로 생성시킬 수 있다.

Java9부터는

  • 굳이 안에서 객체를 생성하지 않고 try() 구문안에서 명시만 해주는 것도 가능하다.

  • 형식

    try( /* New Resource Instance implemented by Closeable */ ){
      //Implements
    }catch(Exception e){
      //Exception
    }
  • 예제

    byte[] buffer = new byte[2048];
    int len;
    FileInputStream fis = new FileInputStream("/path/to/file");
    try(fis){
      while ((len = fis.read(buffer)) > 0){
          //Somthing to do..
      }
    }catch(IOException e){
      e.printStackTrace();
    }

참고