各位:   小弟最近在开发式碰到了一个问题,代码如下 private DB_Conn conn=new DB_Conn();

public Vector list_goods(){ ResultSet rs=null;
Vector v=new Vector();
conn.ConnectDB();
try{
Goods goods=null;

String sql="select * from goods";
rs=conn.sm.executeQuery(sql);
while(rs.next()){
goods=new Goods();
goods.setGoods_id(rs.getInt("Goods_id"));
goods.setGoods_name(rs.getString("Goods_name"));
goods.setTypeid(rs.getInt("typeid"));
goods.setGoods_price(rs.getFloat("Goods_price"));
goods.setGoods_discount(rs.getFloat("Goods_discount"));
goods.setGoods_desc(rs.getString("Goods_desc"));
goods.setSupplier(rs.getString("supplier"));
goods.setQty(rs.getInt("qty"));
goods.setIspreferred(rs.getInt("ispreferred"));
goods.setGoods_pic(rs.getString("Goods_pic"));
v.addElement(goods);
}
// 位置1
}catch(SQLException e){
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(rs!=null){
rs.close();
rs=null;
 }
if(conn!=null){
conn.CloseDB();
}
}catch(SQLException e){
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
}

return v;
}
我想把return v;放到位置1 ,可是eclipse 报错,说没有返回值,请问这是怎么回事啊

解决方案 »

  1.   

    很可能是数据库访问代码写的有问题,出错或者查询不到值就返回null了。
    应该贴你DB_Conn的代码看看。
      

  2.   

    你的位置1是在一个try块里 你能保证程序能运行try块里面的么 万一有异常 那你的catch块里也得有返回的啊 而且你有两个try-catch~仔细想想就明白了 
      

  3.   

    try
    {}
    catch()
    {}
    是紧接着关系,中间不能分开的。
      

  4.   

    你在位置1写上return v,因为这个代码在try语句中,所以有可能执行不到你在现在
    if(conn!=null){
    conn.CloseDB();
    }
    }catch(SQLException   e){
    e.printStackTrace();
    }catch(Exception   e){
    e.printStackTrace();
    }
    }return   v;
    } 其中return v的位置,写一句return null即可
      

  5.   

    你可以在位置1写return v 但是在最外层也需要return 一个值 你可以认为如果执行到最外层表示程序出错 return null即可
      

  6.   

    因为必须必须,一个有return type的method必须有一个返回,你最后要是有可能啥也不返回,就没法编译过去滴。