prepareCall ?



I have one question.
Look at this example:

try{
CallableStatement stmt1 = conn.prepareCall("{call ADDNEWRECORD}");
CallableStatement stmt2 = conn.prepareCall("{call DELETERECORD}");
stmt1.execute();
stmt2.execute();
}catch(SQLException e1){}
finally{
try{
if(stmt1!=null || stmt2!=null) {
stmt1.close();
line 10
stmt2.close();
}
if(null!=conn){
conn.close();
}
}catch(SQLException e2){}


where ADDNEWRECORD and DELETENEWRECORD are two stored procedures.
My question is, what hapen's when stmt1.close() at line 10 throw exception,
it is cought in e2 but stmt2.close() will never be reached. How can i solve
this ?
Can i use just one callablestatement and use define two SQL strings like
this String sql1 = "{call ADDNEWRECORD}"; String sql2 = "{call
DELETERECORD}", and
than write conn.prepareCall(sq1);
stmt1.execute();
conn.prepareCall(sql2);
stmt2.execute();
and than there will be just one statement to close ?


THANKS IN ADVANCE


.