Rewrite the class so that it throws appropriate exceptions instead of returning -1 as an error code. Write test code that attempts to withdraw and deposit invalid amounts and catches the exceptions that are thrown.
A method that returns a special error code can sometimes cause problems. The caller might ignore the error code or treat the error code as a valid return value. In this case it is better to throw an exception instead. The following class maintains an account balance and returns a special error code.
```
{
private double balance;
public Account()
{
balance = 0;
}
public Account(double initialDeposit)
{
balance = initialDeposit;
}
public double getBalance()
{
return balance;
}
// returns new balance or -1 if error
public double deposit(double amount)
{
if (amount > 0)
balance += amount;
else
return -1; // Code indicating error
return balance;
}
// returns new balance or -1 if invalid amount
public double withdraw(double amount)
{
if ((amount > balance) || (amount < 0))
return -1;
else
balance -= amount;
return balance;
}
}
```
This solution throws a NegativeAmount and InsufficientBalance exception. It is worth pointing out to the students the problems that would occur if negative account balances were desirable.
See the code in Account.java.
You might also like to view...
The inputs used by an Excel function are called ________
A) parameters B) arguments C) dependent variables D) independent variables
The rule accuracy after R1 has been discovered, where only the positive examples covered by R1 are discarded).
Figure 5.1 illustrates the coverage of the classification rules R1, R2, and R3.
Determine which is the best and worst rule according to: