新手求助
各位大侠:
帮忙看看以下一个方法的代码,为什么总是提示没有返回值。
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();
}
}