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); }
最后当用户想取大于余额的金钱时,就会报出异常