2010-08-01 99 views
2

我有一个方法,我必须返回一个二维字符串数组。如何在java中返回一个二维字符串数组?

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

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 

请尽快帮助我。我被困住了。 所有的答案非常感谢!

回答

4

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

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

  • 登录的地方不仅仅是控制台更合适的任何异常信息
  • 不要捕捉裸Exception - 具体抓例外
  • 如果你不能真正处理异常,让它沿着调用堆栈

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

如果你真的想要捕捉异常(特定的,心智),那么你需要计算出你想要返回的情况。

+0

非常感谢... 我会改变我处理异常的方式...... :) – shahensha 2010-08-01 08:52:55

0

你已经指出try语句中的return命令尝试这种方式,它将工作。

public int x(){ 

    try{ 

    }catch (Exception e){} 

    return x; 
} 
相关问题