如何在java中返回2D String数组?

时间:2010-08-01 08:35:16

标签: java compiler-errors multidimensional-array

我有一个方法,其中我必须返回一个2D字符串数组。

该方法的代码部分如下: -

public String[][] retrieveData(){
 try{
  int noOfRows = 0;
  pstmt = con.prepareStatement("select * from category");
  ResultSet rs = pstmt.executeQuery();
  while(rs.next())
   noOfRows++;
  rs.first();
  categoryContent = new String[noOfRows][noOfCols];
  for(int i = 0 ; i < noOfRows ; i++){
   for(int j = 0 ; j < noOfCols ; j++){
    if(j == 0){
     Integer categoryNo = new Integer(rs.getInt(1));
     categoryContent[i][j] = categoryNo.toString();
    }
    else{
     categoryContent[i][j] = rs.getString(j+1);
    }
   }
   rs.next();
  }
  return categoryContent ;
 }
 catch(Exception e){
  e.printStackTrace();
 }
}

我在编译时得到的错误如下: -

I:\DynamicWebpageCreator\WEB-INF\classes>javac *.java
Category.java:134: missing return statement
        public String[][] retrieveData(){
                                        ^**
1 error

请尽快帮助我。我坚持了下来。 所有答案都非常感谢!

2 个答案:

答案 0 :(得分:4)

如果抛出异常,您将打印堆栈跟踪,但永远不会返回任何内容。这就是编译器所抱怨的。

一般来说,“处理”这样的例外是非常糟糕的主意

  • 将任何异常信息记录在比控制台更合适的地方
  • 不要抓住Exception - 抓住特定的例外
  • 如果您无法实际处理异常,请让它向上传播调用堆栈

在这种情况下,我建议你应该改变你的方法来声明可能引发的异常,并删除try / catch块。

如果你真的想要捕捉异常(特定的,思想),那么在那种情况下你需要弄清楚你想要归还的东西。

答案 1 :(得分:0)

你已经在try语句的一边指示了return命令,试试这种方式。

public int x(){

    try{

    }catch (Exception e){}

    return x;
}