[java][jdbc] try-catch에서 finally를 사용하는 이유

HMS·2022년 7월 27일
0

finally 를 사용해서 연결을 끊어줘야 하는 이유

JDBC를 사용하여 데이터베이스와 연동하는 과정에서 App 과 DB를 연결해서 사용하게 되는데 정상적으로 DB 서버에 연결하여 사용하고 있었다면 마지막에는 DB서버와의 연결을 끊어주어야 한다.
지속적인 연결을 계속 유지하기 위해서는 리소스를 계속 점유하고 있어야 하기 때문에 그것을 방지하기 위함이다.

그런데 여기서 정상적인 처리후에 연결 해제만 코딩 해놓게 된다면 비정상적인 처리(예외) 상황에서는 DB 연결이 해제 되지 않는 상황이 발생하게 되어 문제가 발생할 수 있게 된다.

그렇기 때문에 finally 를 통해서 try 경우든 catch 경우에든 DB 연결 해제 처리를 하게 되어 DB에 영향을 주지 않도록 설정하는 것이다.

예를 들어 다음과 같이 try-catch-finally 블록을 사용하여 JDBC를 이용하여 데이터베이스와 연동하는 코드를 작성해 볼 수 있다.

Connection conn = null;
try {
    // DB 연결 생성
    conn = DriverManager.getConnection(DB_URL, USERNAME, PASSWORD);

    // 작업 수행

} catch (SQLException e) {
    // 예외 처리
} finally {
    // DB 연결 해제
    if (conn != null) {
        try {
            conn.close();
        } catch (SQLException e) {
            // 예외 처리
        }
    }
}

위의 코드에서는 try 블록에서 DB 연결을 생성하고 작업을 수행한 뒤, finally 블록에서는 DB 연결을 해제하는 코드를 작성하고 있다.
이렇게 작성하면, 예외 발생 여부에 상관없이 항상 DB 연결을 제대로 해제할 수 있다.

profile
안녕하세요

0개의 댓글