我有一个方法,其中我必须返回一个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
请尽快帮助我。我坚持了下来。 所有答案都非常感谢!
答案 0 :(得分:4)
如果抛出异常,您将打印堆栈跟踪,但永远不会返回任何内容。这就是编译器所抱怨的。
一般来说,“处理”这样的例外是非常糟糕的主意:
Exception
- 抓住特定的例外在这种情况下,我建议你应该改变你的方法来声明可能引发的异常,并删除try / catch块。
如果你真的想要捕捉异常(特定的,思想),那么在那种情况下你需要弄清楚你想要归还的东西。
答案 1 :(得分:0)
你已经在try语句的一边指示了return命令,试试这种方式。
public int x(){
try{
}catch (Exception e){}
return x;
}