JAVA/포스팅

자바 finally블럭

짜집퍼박사(짜박) 2023. 11. 14. 01:45

finally 블록은 자바에서 예외 처리를 위한 try-catch 구문과 함께 사용되며, try 블록에서 예외가 발생하든 발생하지 않든 반드시 실행되어야 하는 코드를 담고 있습니다. finally 블록은 try 블록과 catch 블록 다음에 나타납니다.

finally 블록의 주요 특징은 다음과 같습니다.

 

1. 반드시 실행되는 코드

finally 블록에 포함된 코드는 예외 발생 여부와 상관없이 항상 실행됩니다.

 

2. 예외 발생 여부와 상관 없이 실행

finally 블록은 try 블록에서 예외가 발생하더라도 발생하지 않더라도 반드시 실행됩니다.

 

3. 자원 해제 등의 작업에 유용

주로 리소스를 해제하는 등의 작업을 수행할 때 활용됩니다.

finally 블록의 구문은 다음과 같습니다.

try {
    // 예외가 발생할 수 있는 코드
} catch (ExceptionType e) {
    // 예외를 처리하는 코드
} finally {
    // 예외 발생 여부와 상관없이 항상 실행되는 코드
}

예를 들어, 파일을 열고 읽는 작업을 수행하면서 예외가 발생하더라도 항상 파일을 닫아주는 코드를 finally 블록에서 작성할 수 있습니다.

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class FileProcessor {
    public String readFromFile(String filePath) {
        BufferedReader reader = null;
        try {
            reader = new BufferedReader(new FileReader(filePath));
            // 파일에서 데이터 읽는 작업 수행
            // ...
        } catch (IOException e) {
            // IOException 처리 코드
            e.printStackTrace();
        } finally {
            try {
                // 파일을 열었으면 항상 닫아주어야 함
                if (reader != null) {
                    reader.close();
                }
            } catch (IOException e) {
                // 닫는 도중에도 예외가 발생할 수 있음
                e.printStackTrace();
            }
        }
    }
}

위의 코드에서 finally 블록은 파일을 열었으면 항상 닫아주는 역할을 합니다. 파일을 열다가 예외가 발생하더라도 finally 블록이 실행되므로, 리소스를 확실히 해제할 수 있습니다.

 

With ChatGPT

'JAVA > 포스팅' 카테고리의 다른 글

사용자정의 예외  (0) 2023.11.15
자바 try-with-resources문  (0) 2023.11.15
자바 메서드에 예외 선언하기  (0) 2023.11.14
자바 예외 발생시키기  (0) 2023.11.14
자바 예외의 발생과 catch블럭  (0) 2023.11.14