java多处返回问题

haoztao 2012-10-29 02:22:09

public boolean isWorkDay()
{
Connection connection = null;
Statement st = null;
ResultSet rs = null;
try
{
connection = JDBCHelperV2.getConnection();

String sql_workDay = sql_getHoliday;
sql_workDay = sql_workDay.replace("@type", "2");
rs = JDBCHelperV2.executeQuery(connection, sql_workDay);
while (rs.next())
{
return true;
}

String sql_holiday = sql_getHoliday;
sql_holiday = sql_holiday.replace("@type", "1");
rs = JDBCHelperV2.executeQuery(connection, sql_holiday);
while (rs.next())
{
return false;
}

rs = JDBCHelperV2.executeQuery(connection, sql_getDayOfWeek);
while (rs.next())
{
String temp = rs.getString("weekday");
if (temp.equals("7") || temp.equals("1"))
{
return false;
}
return true;
}
}
catch(SQLException sqle)
{
throw new RuntimeException(sqle);
}
catch(Exception e)
{
}
finally
{
try {if (null != rs) {st = rs.getStatement();rs.close();}} catch(SQLException e1) {logger.error("isWorkDay:e1" + e1);}
try {if (null != st) {st.close();}} catch(SQLException e3) {logger.error("isWorkDay:e1" + e3);}
try {if (null != connection) {connection.close();}} catch(SQLException e2) {logger.error("isWorkDay:e1" + e2);}
}
return false;
}


问题:当执行try {if (null != connection) {connection.close();}} catch(SQLException e2) {logger.error("isWorkDay:e1" + e2);}也就是关闭connection的时候回跳转到while (rs.next())
{
return true;
}或者
while (rs.next())
{
return false;
}
为啥会跳转到前面呢?如果我定义一个boolean值 依次赋值,最后返回该boolean值则可以按正确顺序走下去,请指点下啥原因吧,迷茫啊
...全文
119 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
你好毒你好毒 2012-10-29
  • 打赏
  • 举报
回复
不可能跳回去的,我不知道你出于什么目的写的代码,但是我还是想说这样写真是让人不想看,上面两个while没必要吧,用个if不就好了?

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧