finally 블록의 목적은 무엇인가요?
`finally` 블록의 목적은 예외 발생 여부와 상관없이 반드시 실행되어야 하는 코드를 포함시키는 것입니다.
즉, `try` 블록 내에서 예외가 발생하든 발생하지 않든 상관없이, 또는 `catch` 블록에서 예외를 처리하든 처리하지 않든 마지막에 반드시 실행되어야 하는 작업을 `finally` 블록에 작성합니다.
주요 용도로는 다음과 같습니다: 1. 자원 해제 파일, 네트워크 연결, 데이터베이스 커넥션 등과 같이 사용 후 반드시 해제하거나 닫아야 하는 자원을 안전하게 처리하는 데 사용됩니다.
2. 일관된 종료 처리 예외가 발생하여도 프로그램의 상태를 일정하게 유지하거나, 로그를 남기거나, 사용자에게 메시지를 출력하는 등 반드시 처리되어야 하는 공통 작업을 구현할 때 유용합니다.
3. 중복 코드 방지 여러 `catch` 블록 또는 `try` 블록 뒤에 반복해서 작성해야 할 코드를 한 곳에 모아 중복을 줄일 수 있습니다.
예를 들어, 파일을 열고 처리한 뒤 반드시 파일을 닫아야 한다면 `finally` 블록 내에서 `close()`를 호출하여 자원을 안전하게 정리할 수 있습니다.
```java try { // 파일 작업 수행 } catch (IOException e) { // 예외 처리 } finally { // 파일 닫기 - 예외 발생 여부와 관계없이 실행됨 } ``` `finally` 블록은 예외 처리 흐름과 상관없이 반드시 실행되어야 하는 정리(clean-up) 작업이나 종료 작업을 보장하기 위해 사용됩니다.