Question: CODE IN JAVA Reconsider the following examples: BankAccount.java NegativeStartingBalance.java AccountTest.java Recall the following examples of exceptions that can affect a bank account: A negative starting

CODE IN JAVA

Reconsider the following examples:

  • BankAccount.java
  • NegativeStartingBalance.java
  • AccountTest.java

Recall the following examples of exceptions that can affect a bank account:

  • A negative starting balance is passed to the constructor.
  • A negative interest rate is passed to the constructor.
  • A negative number is passed to the deposit method.
  • A negative number is passed to the withdraw method.
  • The amount passed to the withdraw method exceeds the accounts balance.

In this, you will create exceptions that represent the remaining 4 error conditions by extending the Exception class. Name your classes as follows:

  • NegativeInterest.java
  • NegativeDeposit.java
  • NegativeWithdraw.java
  • AmountWithdrawExceeds.java

Write a driver program to test all your exception classes.

-----------------------------------------------------------------------------

  • BankAccount.java

/**

The BankAccount class simulates a bank account.

*/

public class BankAccount{

private double balance; // Account balance

/**

This constructor sets the starting balance

at 0.0.

*/

public BankAccount(){

balance = 0.0;

}

/**

This constructor sets the starting balance

to the value passed as an argument.

@param startBalance The starting balance.

@exception NegativeStartingBalance When

startBalance is negative.

*/

public BankAccount(double startBalance) throws NegativeStartingBalance{

if (startBalance < 0)

throw new NegativeStartingBalance(startBalance);

balance = startBalance;

}

/**

This constructor sets the starting balance

to the value in the String argument.

@param str The starting balance, as a String.

*/

public BankAccount(String str){

balance = Double.parseDouble(str);

}

/**

The deposit method makes a deposit into

the account.

@param amount The amount to add to the

balance field.

*/

public void deposit(double amount){

balance += amount;

}

/**

The deposit method makes a deposit into

the account.

@param str The amount to add to the

balance field, as a String.

*/

public void deposit(String str){

balance += Double.parseDouble(str);

}

/**

The withdraw method withdraws an amount

from the account.

@param amount The amount to subtract from

the balance field.

*/

public void withdraw(double amount){

balance -= amount;

}

/**

The withdraw method withdraws an amount

from the account.

@param str The amount to subtract from

the balance field, as a String.

*/

public void withdraw(String str){

balance -= Double.parseDouble(str);

}

/**

The setBalance method sets the account balance.

@param b The value to store in the balance field.

*/

public void setBalance(double b){

balance = b;

}

/**

The setBalance method sets the account balance.

@param str The value, as a String, to store in

the balance field.

*/

public void setBalance(String str){

balance = Double.parseDouble(str);

}

/**

The getBalance method returns the

account balance.

@return The value in the balance field.

*/

public double getBalance(){

return balance;

}

}

  • NegativeStartingBalance.java

/**

NegativeStartingBalance exceptions are thrown by the

BankAccount class when a negative starting balance is

passed to the constructor.

*/

public class NegativeStartingBalance extends Exception{

/**

This constructor uses a generic

error message.

*/

public NegativeStartingBalance(){

super("Error: Negative starting balance");

}

/**

This constructor specifies the bad starting

balance in the error message.

@param The bad starting balance.

*/

public NegativeStartingBalance(double amount){

super("Error: Negative starting balance: " + amount);

}

}

  • AccountTest.java

/**

This program demonstrates how the BankAccount

class constructor throws custom exceptions.

*/

public class AccountTest{

public static void main(String [] args){

// Force a NegativeStartingBalance exception.

try{

BankAccount account = new BankAccount(-100.0);

}catch(NegativeStartingBalance e){

System.out.println(e.getMessage());

}

}

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!