读书人

生手求助

发布时间: 2011-12-08 21:33:54 作者: rapoo

新手求助
各位大侠:

帮忙看看以下一个方法的代码,为什么总是提示没有返回值。


public ArrayList gettickeyinfo(String _trainN) throws SQLException
{

try
{
ary=new ArrayList();
tickeyInfo tickeyinfo;
open();
ps = con.prepareStatement("select * from TrainTickey where trainNo=?");
ps.setString(1,_trainN);
rs=ps.executeQuery();
while(rs.next())
{
tickeyinfo=new tickeyInfo();
tickeyinfo.setTrainN(rs.getString(1));
tickeyinfo.setSeatNum(rs.getInt(2));
tickeyinfo.setBedNum(rs.getInt(3));
tickeyinfo.setSeatPrice(rs.getFloat(4));
tickeyinfo.setBedPrice(rs.getFloat(5));
ary.add(tickeyinfo);

}

return ary;
} catch (SQLException ex)
{

}finally
{
rs.close();
ps.close();
con.close();
}


}



[解决办法]
楼主想象的太过于理想话了,如果在try里出现了异常,那么就将转到catch块,而你的catch块里,没有任何的return,当然不能编译了。

要么return 一个值,要么抛出一个新异常

Java code
catch (SQLException ex) {            // return null;            throw new SQLException();        }
[解决办法]
访问数据库的时候,会遇到很多意想不到的问题,比如:数据库访问出错,网络连接中断等等。
另外,在关闭ResultSet,Statement,Connection等的时候,最好先判断一下是否null,不是null才关闭。
Java code
        if(rst != null){            try{                rst.close();            }catch(SQLException sqle){                sqle.printStackTrace();            }        } 

读书人网 >Java相关

热点推荐