2016-04-03 17 views
0

Ich möchte toRoom von dieser Methode abrufen.Wie soll ich es zurückgeben Wenn ich return statement außerhalb des try catch Blocks setze, wird der innerhalb des Blocks berechnete Wert nicht verwendet.Rückgabewert in try catch Methode

+1

Verwenden Sie nicht Java 7+? Wenn ja, sollten Sie eine try-with-resources-Anweisung verwenden (sowohl 'PreparedStatement' als auch' ResultSet' implementieren 'AutoCloseable'); Hier schließen Sie keine Ressourcen ... Sie geben auch ein 'double' zurück und' totRoom' ist ein 'String'. Das wird nicht funktionieren ... Und schließlich ist ein leerer "Fangblock" eine sehr, sehr schlechte Idee. – fge

+0

Sie können die Variable totRoom vor dem Versuch in try setzen und dann nach dem Catch zurückgeben. – Yan

+1

Ich sage nur, dass Ihre SQL-Anweisung weit offen für SQL Injection ... – ryekayo

Antwort

0

Sie können so etwas versuchen. Lass es mich wissen, wenn das funktioniert.

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; 
}