写一个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);
}

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

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值