[go: up one dir, main page]

0% found this document useful (0 votes)
14 views6 pages

Assignment 4: Code

Uploaded by

yash.v.kumbhar3e
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views6 pages

Assignment 4: Code

Uploaded by

yash.v.kumbhar3e
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Yash Kumbhar

23104B0081
EXTC B

ASSIGNMENT 4

You are tasked with writing a Java program to simulate a simple bank account system. The
program should handle exceptions related to common banking operations such as deposits,
withdrawals, and balance inquiries. The system should allow a user to perform operations on
a bank account, with proper exception handling for scenarios such as insufficient balance,
invalid account number, and invalid deposit amounts.

CODE:
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

// Custom Exception for Insufficient Balance

class InsufficientBalanceException extends Exception {

public InsufficientBalanceException(String message) {

super(message);

// Custom Exception for Invalid Account Number


class InvalidAccountException extends Exception {

public InvalidAccountException(String message) {

super(message);

// Custom Exception for Invalid Deposit Amount


class InvalidDepositAmountException extends Exception {
public InvalidDepositAmountException(String message) {

super(message);

// BankAccount class
class BankAccount {

private String accountNumber;


private double balance;

public BankAccount(String accountNumber) {

this.accountNumber = accountNumber;
this.balance = 0.0;

public String getAccountNumber() {

return accountNumber;

public double getBalance() {

return balance;

public void deposit(double amount) throws InvalidDepositAmountException {

if (amount <= 0) {
throw new InvalidDepositAmountException("Deposit amount must be greater than zero.");

}
balance += amount;

System.out.println("Deposited: " + amount);

}
public void withdraw(double amount) throws InsufficientBalanceException {

if (amount > balance) {

throw new InsufficientBalanceException("Insufficient balance for withdrawal.");

}
balance -= amount;
System.out.println("Withdrew: " + amount);

// Bank class to manage accounts

class Bank {

private Map<String, BankAccount> accounts = new HashMap<>();

public void createAccount(String accountNumber) {

accounts.put(accountNumber, new BankAccount(accountNumber));


System.out.println("Account created: " + accountNumber);

public BankAccount getAccount(String accountNumber) throws InvalidAccountException {

BankAccount account = accounts.get(accountNumber);


if (account == null) {

throw new InvalidAccountException("Account number " + accountNumber + " does not exist.");

return account;

// Main class

public class BankAccountSystem {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);


Bank bank = new Bank();

while (true) {

System.out.println("\nBank Account System");


System.out.println("1. Create Account");
System.out.println("2. Deposit");
System.out.println("3. Withdraw");
System.out.println("4. Check Balance");
System.out.println("5. Exit");
System.out.print("Choose an option: ");
int choice = scanner.nextInt();
scanner.nextLine(); // Consume newline

switch (choice) {

case 1:
System.out.print("Enter account number: ");

String accountNumber = scanner.nextLine();


bank.createAccount(accountNumber);
break;

case 2:

System.out.print("Enter account number: ");


accountNumber = scanner.nextLine();
try {

BankAccount account = bank.getAccount(accountNumber);


System.out.print("Enter deposit amount: ");
double depositAmount = scanner.nextDouble();
account.deposit(depositAmount);
System.out.println("New balance: " + account.getBalance());

} catch (InvalidAccountException | InvalidDepositAmountException e) {

System.out.println("Error: " + e.getMessage());


}
break;

case 3:

System.out.print("Enter account number: ");


accountNumber = scanner.nextLine();
try {

BankAccount account = bank.getAccount(accountNumber);


System.out.print("Enter withdrawal amount: ");
double withdrawalAmount = scanner.nextDouble();
account.withdraw(withdrawalAmount);
System.out.println("New balance: " + account.getBalance());

} catch (InvalidAccountException | InsufficientBalanceException e) {

System.out.println("Error: " + e.getMessage());

}
break;

case 4:

System.out.print("Enter account number: ");


accountNumber = scanner.nextLine();
try {

BankAccount account = bank.getAccount(accountNumber);


System.out.println("Current balance: " + account.getBalance());

} catch (InvalidAccountException e) {

System.out.println("Error: " + e.getMessage());


}

break;

case 5:

System.out.println("Exiting...");
scanner.close();
return;

default:

System.out.println("Invalid option. Please try again.");

}
}

You might also like