Как вернуть 2D String массив в Java? - PullRequest
2 голосов
/ 01 августа 2010

У меня есть метод, в котором я должен вернуть двумерный массив строк.

Часть кода для этого метода выглядит следующим образом: -

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 ]

4 голосов
/ 01 августа 2010

Если выдается исключение, вы распечатываете трассировку стека, но никогда ничего не возвращаете.Это то, на что жалуется компилятор.

В общем, «обработка» исключений, подобных этой, является действительно плохой идеей :

  • Записывать любую информацию об исключениях где-то ещеуместнее, чем просто консоль
  • Не поймать голым Exception - поймать определенные исключения
  • Если вы не можете обработать исключение, позвольте ему распространяться вверх по стеку вызовов

В этом случае я бы посоветовал вам, вероятно, просто изменить свой метод, чтобы объявить, какие исключения могут быть выброшены, и удалить блок try / catch.

Если вы действительно хотите перехватывать исключения (конкретныеимейте в виду) тогда вам нужно будет решить, что вы хотите вернуть в этом случае.

0 голосов
/ 05 декабря 2013

Вы указали команду возврата в стороне оператора try, попробуйте так, как это будет работать.

public int x(){

    try{

    }catch (Exception e){}

    return x;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...