1.模拟场景
有一个人要去银行的ATM机上取钱,但他输入的金额超过了他银行账户的余额,这时我们的ATM机就抛出一个自定义异常
BankAccountException
2.实现ATM类
public class ATM
{
//当前登录的账户
BankAccount nowAccount;
public ATM()
{
}
/**
* 登录账户
*
* @param account 登录的账户
*/
public void loginAccount(BankAccount account)
{
nowAccount = account;
}
/**
* 显示当前账户的余额
*/
public void showAccountBalance()
{
System.out.println("此账号余额为:" + nowAccount.getBalance());
}
/**
* 取钱
*
* @param value 取钱的金额
*/
public void getCash(int value)
{
try
{
nowAccount.withdrawMoney(value);
} catch (BankAccountException e)
{
e.printStackTrace();
}
}
}
3.创造一个账户类
public class BankAccount
{
private float balance;
public BankAccount(float balance)
{
this.balance = balance;
}
/**
* 存入钱
*
* @param money 存入的金额
*/
public void depositMoney(float money)
{
balance += money;
}
/**
* 在取钱的时候,若是金额大于账户余额,就要抛出BankAccountException异常
*
* @param money 取出的金额
*/
public void withdrawMoney(double money) throws BankAccountException
{
if (balance <= money)
{
throw new BankAccountException("余额不足,所以没法取出这么多钱!");
}
balance -= money;
}
public float getBalance()
{
return balance;
}
}
4.实现BankAccountException类
public class BankAccountException extends Exception
{
public BankAccountException(String message)
{
super(message);
}
}
5.开始测试
public static void main(String[] args)
{
ATM atm = new ATM();
BankAccount me = new BankAccount(100);
atm.loginAccount(me);
atm.showAccountBalance();
atm.getCash(110);
}
最后当用户想取大于余额的金钱时,就会报出异常