оператор return не работает с try catch в DAO java spring - PullRequest
0 голосов
/ 22 марта 2011

У меня есть эта функция в userDAO

public List<Country> findAllCountries() {

         try {

                 Session session = sessionFactory.getCurrentSession();
                 Query query = session.createQuery("FROM  Country");
                 return  query.list();

         } catch (Exception e) {
                    System.out.println(e);
                }


        }

Проблема в том, что eclipse выдает ошибку, которая говорит мне либо использовать void в возвращении, либо добавить оператор return, если я удаляю try catch, тогда это работает

Ответы [ 2 ]

2 голосов
/ 22 марта 2011

Я бы написал так.Я не знаю, что вы должны делать, чтобы закрыть свою сессию или убрать в блоке finally.Это сделает Eclipse счастливым:

public List<Country> findAllCountries() 
{    
    List<Country> countries = new ArrayList<Country>();

    try 
    {
        Session session = sessionFactory.getCurrentSession();
        Query query = session.createQuery("FROM  Country");
        countries = query.list();    
    } 
    catch (Exception e) 
    {
        e.printStackTrace();
    }

    return countries;
}
0 голосов
/ 22 марта 2011

Вам также нужно что-то вернуть (или выдать исключение) из вашего блока catch:

catch (Exception e) {
         System.out.println(e);
         return null;
}

catch (Exception e) {
         System.out.println(e);
         throw new RuntimeException("DAO failed", e);
}

В противном случае в методе будет путь к коду без оператора return.

...