2016-01-21 55 views
0

我正試圖創建一種方法將資金從一個帳戶轉移到另一個帳戶。如何讀取同一類型的兩個參數?

我試圖將帳戶類的發送和接收帳號作爲輸入參數,但我得到的帳號無效例外。

如何做到這一點而不產生異常? 有什麼辦法可以使兩個參數爲'accountNumber'?

public int fundTransfer(int accountNumber, int accountNumber1, int amount) throws InvalidAccountNumberException, InsufficientBalanceException{ 

    Account account=searchaccount(accountNumber); 
    Account account1= searchaccount(accountNumber1); 

    if(amount>0){ 
     account.setAmount(account.getAmount()-amount); 
     account1.setAmount(account1.getAmount()+amount); 
    }else{ 
     throw new InsufficientBalanceException(); 
    } 

    throw new InvalidAccountNumberException(); 
} 
+0

當然你可以在裏面,這就是所謂的[可變參數](http://docs.oracle.com/javase/7/docs/technotes/guides/language/varargs.html)(或簡稱可變參數)使用'...'表示法。但是,有兩個獨立的參數 - 「發送者」和「接收者」是不是更合乎邏輯? –

+2

您的代碼無條件拋出異常。 –

+0

你能指定哪一行是錯誤的原因嗎? –

回答

0

這裏是我的代碼的意見,你可以改變:

public int fundTransfer(int accountNumber, int accountNumber1, int amount) throws InvalidAccountNumberException, InsufficientBalanceException{ 

    Account account=searchaccount(accountNumber); 
    Account account1= searchaccount(accountNumber1); 

    if(amount>0){ 
     account.setAmount(account.getAmount()-amount); 
     account1.setAmount(account1.getAmount()+amount); 
    }else{ 
     throw new InsufficientBalanceException(); 
    } 
} 

並把throw new InvalidAccountNumberException();searchaccount功能

+0

我刪除了最後一個拋出,並添加了accountNumber1的餘額返回語句,它的工作。 –

0

throw new InvalidAccountNumberException();每次調用此方法時都會運行,因爲它位於if語句集羣的外部。

試試這個:

public int fundTransfer(int accountNumber, int accountNumber1, int amount) throws InvalidAccountNumberException, InsufficientBalanceException{ 

     Account account=searchaccount(accountNumber); 
     Account account1= searchaccount(accountNumber1); 

     if(amount>0){ 
      account.setAmount(account.getAmount()-amount); 
      account1.setAmount(account1.getAmount()+amount); 
     }else{ 
      throw new InsufficientBalanceException(); 
     } 

      // throw new InvalidAccountNumberException(); 
    } 
} 
+1

拋出應該是最後一個語句,你不能添加兩個拋出語句,這是一個編譯錯誤 – Saravana

相關問題