自定义异常(java):银行用户

本文介绍如何在Java中自定义DepositException和OverDrawnException异常,用于处理银行操作中的存款金额限制和账户余额负值问题。通过Bank1类演示了save方法抛出异常和take方法直接捕获异常的过程。
摘要由CSDN通过智能技术生成

 

/**
 *  自定义异常类的练习:包括处理和抛出异常
 */

 

测试类:TestBank1

package Exception_test2;

/**
 *  自定义异常类的练习:包括处理和抛出异常
 */

public class TestBank1 {
    public static void main(String[] args) throws OverDrawnException, DepositException {
        //定义一个("001", "张三", "天源路789号", 200)
        Bank1 b = new Bank1("001", "张三", "天源路789号", 200);

        //存入90、-90,取出290
        try {
            b.save(90);
            b.save(-90);
        } catch (DepositException e) {
            System.out.println(e.toString());
        }
        b.take(290);
        System.out.println(b.getNum());
    }
}

自定义异常一:存款金额不能小于0

//package Exception_test2;

//自定义异常
public class DepositException extends Exception {
    //存款金额不能小于0
    public String toString(){
        return "存款不能为负数";
    }
}

自定义异常二:账户余额出现负值的异常处理

//package Exception_test2;

//自定义异常
public class OverDrawnException extends Exception {
    //账户余额出现负值的异常处理
    public String toString(){
        return "存款不能为负数";
    }
}

定义bank类:take()直接处理异常、save()抛出异常

//package Exception_test2;

//定义bank类:take()直接处理异常;save()抛出异常
public class Bank1 {

    //私有属性
    private String no;
    private String name;
    private String address;
    private double num;

    //取钱
    boolean take(double num) {
        try {
            if (this.num - num < 0) {
                throw new OverDrawnException();
            } else {
                this.num -= num;
            }
        } catch (OverDrawnException e) {
            System.out.println(e.toString());
        }
        return true;
    }

    //存钱
    void save(double num) throws DepositException {
        if (num < 0) {
            throw new DepositException();
        } else {
            this.num += num;
        }
    }

    //构造函数
    Bank1() {
    }

    public Bank1(String no, String name, String address, double num) {
        this.no = no;
        this.name = name;
        this.address = address;
        this.num = num;
    }


    //get与set函数:
    public double getNum() {
        return num;
    }

    public void setNum(double num) {
        this.num = num;
    }

    public String getNo() {
        return no;
    }

    public void setNo(String no) {
        this.no = no;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值