본문 바로가기
Spec UP - Backend/나도코딩의 자바기본편

chap_11. Finally 구문 / Try With Resources

by TIS_Ha 2023. 7. 10.
반응형

try 구문이 정상적으로 실행되건, 예외 오류가 발생되건 결과와 상관 없이 finally 로 설정한 구문은 반드시 실행된다.

보통 Finally 구문은 try 내에서 작업하던 내용을 정리할 때 사용한다.

(Ex. 파일을 열었다면 Finally를 통해 파일을 닫는다. / 임시파일을 생성하였다면 Finally를 통해 임시파일을 삭제한다.)

 

Try 구문은 아래와 같이 여러 유형으로 생성할 수 있다.

* try + catch /  try + catch + finally / try+ finally

 

아래와 같이 catch 구문 없이 try + finally 유형으로도 생성할 수 있는 점을 참고하자.


임시 파일을 쓰는 클래스를 만들어 예시를 학습해보자.

위와 같이 MyFileWirter 객체를 생성하여 파일에 내용을 입력하고 최종적으로는 MyFileWriter.close() 메소드를 통해 파일을 닫는다.

이 때 finally 구문 내에서 writer.clos() 메소드를 실행할 때에도 오류가 발생될 수 있으므로 finally 구문 내에 try - catch 구문을 생성할 수도 있다.

 

여기서 finally 구문을 이용하지 않더라도 .close() 메소드가 자동으로 실행되도록  만들 수도 있다.

try 구문 내에서 사용할 리소스(파일, 객체)를 괄호 속에서 생성하게 되면 try catch 구문을 빠져나올 때 자동으로 close() 메소드를 호출해준다.

이를 try with resources 라고 한다.

이 때 try with resources를 사용하기 위한 조건이 있다.

위와 같이 AutoCloseable로 선언되어 있어야만 .close() 메소드를 자동으로 호출 할 수 있다.

반응형

댓글