try-catch
try-catch 안전하게 사용하기
try-with-resources
try catch를 사용하다 보면 자원 반납으로 인해 코드가 복잡해지는 경우가 있다
java 7 부터 지원하는 try-with-resources로 autoCloseable 인터페이스로 자원을 반납할 수 있게된다
try-with-resources 를 사용함으로써, 얻는 이득은 다음과 같다
resource에 정의된 모든 자원의 반납
stack trace가 누락되는걸 방지한다
자원 반납 구현하기
그렇다면 어떻게 우리가 작성한 코드의 자원 반납을 AutoCloseable로 할수 있을까?
🌈 CloseObject의 자원 회수는 File의 삭제로 정의하였다
try{}
가 종료될때 close()가 실행되는 구조로 이루어져있다.
하지만 이 예시는 잘못된 부분이 있다
AutoCloseable의 설명을 읽어보면, InterruptedException
를 발생시켜선 안된다 & 멱등성
을 유지해야 한다는 내용이 적혀있다
멱등성 : 여러번 실행하더라도 같은 결과를 기대할 수 있어야 한다
하지만 현재의 Close는 두번 호출이 되었을때 기존 File을 다시 제거 할수 없으므로 같은 응답이 보장할 수 없다.
Last updated