都说finally是无论程序抛不抛异常都会执行的。我就想把返回值放在finally里如下 boolean isExist(String s) {
boolean flag = false; 
Connection conn = ConnectionFactory.getConnection();
String sql = "select * from user where username='" + s + "'";
Statement stmt = ConnectionFactory.getStatement(conn);
ResultSet rs = ConnectionFactory.getResultSet(stmt, sql);
try {
if(rs.next()) {
flag = true;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
CloseDB.close(stmt, conn);
return flag;
}
}但是eclipse会有警告finally block does not complete normally,我改成下面这样就没了。我想问下为什么在finally中返回值就会出现finally block does not complete normally警告。boolean isExist(String s) {
boolean flag = false; 
Connection conn = ConnectionFactory.getConnection();
String sql = "select * from user where username='" + s + "'";
Statement stmt = ConnectionFactory.getStatement(conn);
ResultSet rs = ConnectionFactory.getResultSet(stmt, sql);
try {
if(rs.next()) {
flag = true;
}
return flag;
} catch (SQLException e) {
e.printStackTrace();
return flag;
} finally {
CloseDB.close(stmt, conn);
}
}