2016-04-03 2 views
0

Я хочу получить totRoom из этого метода. Как я должен его вернуть? Если я поставлю оператор return вне блока catch try, он не принимает значение, вычисленное внутри блока.Возвращаемое значение в методе try catch

+1

Вы не используете Java 7+? Если да, вы должны использовать оператор try-with-resources (как «PreparedStatement», так и «ResultSet» для реализации «AutoCloseable»); здесь вы не закрываете никаких ресурсов ... Также вы возвращаете 'double', а' totRoom' - 'String'. Это не сработает ... И, наконец, пустой блок 'catch' - очень и очень плохая идея. – fge

+0

Вы можете объявить переменную totRoom перед тем, как попробовать установить ее в try, а затем вернуть ее после catch – Yan

+1

. Я просто размещаю там, что ваш SQL-оператор широко открыт для SQL Injection ... – ryekayo

ответ

0

Вы можете попробовать что-то вроде этого. Дай мне знать, если это работает.

public double calRoomCharges(int cusId) 
{ 
    String totRoom = ""; 
    double totalCharge = 0.0; 

    try 
    { 
     //Get Rates 
     String sql="SELECT nights FROM reservation where cus_id ='"+cusId+"'"; 
     pst=conn.prepareStatement(sql); 
     rs=pst.executeQuery(); 
     int roomRates = 0; 
      if(!rs.next()) 
      { 
       //handle no result 
      } 
      else 
      { 
       roomRates = rs.getInt("nights") ; 
       totalCharge = roomRates; // calculate total charge 
       String totRoom = String.valueOf(totalCharge); 
       rc.setText(totRoom); 

      } 

    } 
    catch(Exception e){ 
     System.out.prtintln(e.getMessage()); 
    } 

    return totalCharge; 
} 
Смежные вопросы