我在創建自己的異常類時遇到了一個相當微不足道的問題。我已經擴展它,並試圖在構造函數中接受一個double,但我不斷收到錯誤。Java自定義異常類
的BankAccount @withdraw內部錯誤 「不兼容的類型:InsufficientFundsException不能轉換到拋出」
Exception類:
public class InsufficientFundsException extends RuntimeException {
private double shortFall;
public InsufficientFundsException(double a) {
super("Insufficient funds");
shortFall = a;
}
public double getAmount() { return shortFall; }
}
銀行戶口類:
public class BankAccount {
private int accountNumber;
private double balance;
// Class constructor
public BankAccount(int account) {
accountNumber = account;
balance = 0.0;
}
public int getAccountNumber() {
return accountNumber;
}
public double getBalance()
{
return balance;
}
public void deposit(double b) {
balance += b;
}
public void withdraw(double w) throws InsufficientFundsException {
double difference;
if(w > balance) {
difference = w - balance;
} else {
balance -= w;
}
}
我想除非提款超過目前的餘額,否則取款。在這種情況下,我想拋出一個異常。我也嘗試拋出和例外,但如果我得到:
構造函數InsufficientFundsException類InsufficientFundsException不能應用於gived類型; 要求:無參數 發現:雙 原因:實際的和正式的參數列表長度
public void withdraw(double w) {
double difference;
if(w > balance) {
difference = w - balance;
Exception ex = new InsufficientFundsException(difference);
} else {
balance -= w;
}
}
不同我只有一個構造函數,雖然。任何意見或幫助表示讚賞。
你有所謂的多個類'InsufficientFundsException '? – immibis 2015-02-17 23:48:19
你應該拋出你創建的新異常。 – rgettman 2015-02-17 23:49:08