如何在java中返回一个二维字符串数组?
问题描述:
我有一个方法,我必须返回一个二维字符串数组。如何在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
请尽快帮助我。我被困住了。 所有的答案非常感谢!
答
如果抛出异常,您将打印堆栈跟踪,但不会返回任何内容。这正是编译器所抱怨的。
一般来说,“处理”这样的例外是非常糟糕的主意:
- 登录的地方不仅仅是控制台更合适的任何异常信息
- 不要捕捉裸
Exception
- 具体抓例外 - 如果你不能真正处理异常,让它沿着调用堆栈
在这种情况下,我建议你应该改变你的方法来声明哪些异常可能被抛出,并删除try/catch块。
如果你真的想要捕捉异常(特定的,心智),那么你需要计算出你想要返回的情况。
答
你已经指出try语句中的return命令尝试这种方式,它将工作。
public int x(){
try{
}catch (Exception e){}
return x;
}
非常感谢... 我会改变我处理异常的方式...... :) – shahensha 2010-08-01 08:52:55