QA@IT
«回答へ戻る

回答を投稿



} catch(SQLException e) {
    throw e;
} finally {
    rs.close();
    pStmt.close();
    con.close();
}

この例外処理では駄目です。
rs.close()に失敗したら、pStmt,conのclose()ができません。
同じく、pStmtのclose()に失敗してもconのclose()はできませんよ。



} catch(SQLException e) {
    throw e;
} finally {
    try{
        rs.close();
    }catch(SQLException e2){
        //何かログなどの処理
    }
    try{
        pStmt.close();
    }catch(SQLException e2){
        //何かログなどの処理
    }
    try{
        con.close();
    }catch(SQLException e2){
        //何かログなどの処理
    }
}

というようなコードにすると、何があっても必ずcon.close()が呼ばれます。
そういう視点で再度返却忘れがないかを確認してみましょう。

投稿者:かつのり

~~~


} catch(SQLException e) {
    throw e;
} finally {
    rs.close();
    pStmt.close();
    con.close();
}

~~~

この例外処理では駄目です。
rs.close()に失敗したら、pStmt,conのclose()ができません。
同じく、pStmtのclose()に失敗してもconのclose()はできませんよ。


~~~


} catch(SQLException e) {
    throw e;
} finally {
    try{
        rs.close();
    }catch(SQLException e2){
        //何かログなどの処理
    }
    try{
        pStmt.close();
    }catch(SQLException e2){
        //何かログなどの処理
    }
    try{
        con.close();
    }catch(SQLException e2){
        //何かログなどの処理
    }
}

~~~

というようなコードにすると、何があっても必ずcon.close()が呼ばれます。
そういう視点で再度返却忘れがないかを確認してみましょう。



投稿者:かつのり