Illie

[JAVA] try-with-resources 본문

JAVA

[JAVA] try-with-resources

(*ᴗ͈ˬᴗ͈)ꕤ*.゚ 2024. 10. 13. 00:00

서론

자바에서 외부 자원(파일 읽기, 쓰기 등)을 사용하게 되는 경우가 있는데,

사용한 후에는 무조건 close() 메서드를 호출해주어야 한다

 

왜냐하면,

첫번째로, 외부 자원에 대한 부분은 가비지 컬렉터가 처리해주지 않고

두번째로, 다른 코드에서 같은 resource에 접근하려 하다가 꼬일 수 있기 때문이다

 

하지만, close() 할 때에도 Exception이 날 수 있어서

close에도 try - catch를 적용해야 한다

 

꽤나 코드가 복잡해지는데, 

이를 해결해주는 게 try-with-resources이다

 

본론

간단하다

try 블록이 끝나게 된다면, 괄호안에 있던 자원들이 자동으로 반납된다

그리고 괄호 내에서 자원을 여러 개를 등록할 수 있다

 try (BufferedWriter bw = new BufferedWriter(new FileWriter(FILE_PATH,UTF_8, true))) {
     // try 블록 내 코드
} catch (e) {
     // catch 블록 내 코드
} finally {
     // finally 블록 내 코드
 }

 

JAVA7부터 자동으로 반납할 수 있도록 try-with-resources 문법이 추가되었다

 

결론

자원 누락을 막자!

'JAVA' 카테고리의 다른 글

[JAVA] Executor 전략  (0) 2024.10.12
[JAVA] 싱글톤  (1) 2024.09.12
Comments