异常之自定义异常类

自定义的异常类一般步骤: 
        1.自定义异常类要继承于Exception类或其子类,或其它异常类。 
        2.为自定义异常类声明字段(属性)成员、方法成员或重写父类的字段和方法。 
        3.自定义异常类至少要定义两个构造方法:一个是无参的;另外一个是带 String参数的,目的是将此字符串传递给

父构造方法,同时这个String的 信息作为该异常对象的描述信息。 
        4.最后,起一个能标识异常情况的有意义的名字。 
 

 示例代码:

        代码中先创建了一个MeiQianException来继承异常类,在里面实现出现异常的时候调用的方法,并且这个方法需要传递进参数。super在方法中的作用是当出现这个异常的时候控制台打印的信息。

         throws觉得抛出的是哪种异常,throw抛出异常对象。

public class MeiQianException extends Exception{
    // 代表取钱的时候还差多少钱
    private Double money;

    public MeiQianException(Double money) {
        // super里面的字符串,代表当跑出这个异常的时候打印的异常信息
        super("余额不足还差: " + money);
        this.money = money;
    }

public class AccountAdmin {
    // 余额 (当前账号还有多少钱)
    private Double balance;

    public AccountAdmin(Double balance) {
        this.balance = balance;
    }

    // 存钱
    public void deposit(double money) {
        balance += money;
    }

    // 取钱
    public void withdraw(double money) throws MeiQianException {
        if (balance >= money) {
            balance -= money;
        } else {
            double needMoney = money - balance;
            // 当取钱余额不足的时候,给调用者抛出一个异常,而且这个异常
            // 是编译时异常,需要取钱调用这个方法的人必须要未雨绸缪处理
            throw new MeiQianException(needMoney);
        }
    }

    public static void main(String[] args) {
        AccountAdmin accountAdmin = new AccountAdmin(30000.0);
        accountAdmin.deposit(200);
        try {
            accountAdmin.withdraw(40000.0);
        } catch (MeiQianException e) {
            e.printStackTrace();
        } finally {
            System.out.println("finally");
        }
        System.out.println("AccountAdmin.main");
    }

}
  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值