검색결과 리스트
글
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(); }
참고
- [JAVA] 자바 향상된 예외 처리 - try - with - resources 문: https://dololak.tistory.com/67
- [기초 정리] Java - try(){}, try-with-resources Statement, try 문과 비교: http://blog.naver.com/PostView.nhn?blogId=sseyoung513&logNo=221082287596
- Java_try-with-resources: https://m.blog.naver.com/PostView.nhn?blogId=jkssleeky&logNo=220493121966&proxyReferer=https%3A%2F%2Fwww.google.com%2F
- java - try with resources: https://jess-m.tistory.com/19
- 중첩 try with resources 는 어떻게 작동할까?: https://multifrontgarden.tistory.com/192
'LANGUAGE > Java & Groovy ' 카테고리의 다른 글
[Java] public static void main(String[] args) 갖고 놀기 🤹♂️ (2) | 2020.03.14 |
---|---|
[Groovy] try-with-resources ...... withCloseable{} 으로 대체한다? (0) | 2019.08.19 |
[Java] Logback - EvaluatorFilter를 이용해서 경우에 따라 로그에 색입히기 예제 (0) | 2018.02.01 |
[Java] Logback - logback-test.xml과 개발용 설정 만들기 (0) | 2018.01.31 |
[Java] Logback - 실행중에 Logger Level 변경 (0) | 2018.01.31 |