写一个Java的自定义异常程序

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);
}

最后当用户想取大于余额的金钱时,就会报出异常

发布了2 篇原创文章 · 获赞 0 · 访问量 9

猜你喜欢

转载自blog.csdn.net/weixin_40625864/article/details/104974707