Java用户自定义异常类(内含银行管理系统源码)

为什么要引用自定义异常呢?
当Java提供的内置异常不能满足程序需要的时候,那就需要自定义异常

实例:
自定义一个异常,当人数为负数的时候抛出异常

package yiChang;
//保证人数不能是负数,否则抛出异常
public class RenShu {
  public static void main(String[] args) {
   RenShu rs = new RenShu();//创建对象,方便调用
   try {
    rs.register(-8);
   } catch (MyException e) {
    // TODO 自动生成的 catch 块
    e.printStackTrace();//注意:⚠️这个地方只能用这种输出方式,否则看不到自定义的报错信息。
   }
  }
  public void register (int num) throws MyException{//抛出自己定义的异常
   if(num<0)
    throw new MyException("---注意:人数不能够小于0哦---");
   else
    System.out.println("登记人数为:"+num);
  }
}
class MyException extends Exception{//自定义一个异常
 MyException(String message){
  super(message);//调用父类Exception的构造方法(Exception类的构造方法是由系统自动给出的)(也有相应的get、set方法)
 }
}

在这里插入图片描述

异常处理银行管理系统

存款的时候是不会发生异常的,有可能发生异常的地方就是取钱的时候,当取钱的金额大于银行卡中的余额的时候就会出现异常

package jiCheng_duoTai;
//注意:对于异常的语句抛出的话不能直接写在类中,应该写到函数里面
public class YinHangGuanLiXiTong_YiChang {
  public static void main(String[] args) throws MyException {//这里处理取钱的异常是抛出,当然也可以用try-catch-finally语句块处理异常
   count cc = new count(101,"李小白",5800);
   System.out.println(cc.toString());
   cc.save(200);//存钱
   System.out.println("存款成功,所剩余额为:"+cc.getBouns());
   cc.quMoney(5000);//取钱
   System.out.println("取款成功,所剩余额为:"+cc.getBouns());
   cc.quMoney(2000);//取钱
   System.out.println("取款成功,所剩余额为:"+cc.getBouns());
  }
}
class count{
 private int id;
 private String name;
 private double bouns;
 public count() {}
 public count(int id, String name, double bouns) {
  this.id = id;
  this.name = name;
  this.bouns = bouns;
 }
 public int getId() {
  return id;
 }
 public void setId(int id) {
  this.id = id;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public double getBouns() {
  return bouns;
 }
 public void setBouns(double bouns) {
  this.bouns = bouns;
 }
 public double save(double money) {
  return bouns=bouns+money;
 }
 //注意:取款时有可能发生异常,因为Java不是什么异常都包含,所以自己定义一个异常
 public double quMoney(double money) throws MyException {//同时要抛出自己定义的异常
  if(bouns<money)
   throw new MyException("余额不足,提取失败");
  //此处的else可以省略的,因为抛出异常的时候后面的语句不会执行
  return bouns=bouns-money;
 }
 public String toString(){
  return  name+"  "+id+"  "+bouns;
 }
}
class MyException extends Exception{
 public MyException(String s) {
  super(s);//注意:继承了异常类,就可以调用异常类的构造方法
 }
}

在这里插入图片描述

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱睡觉的小馨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值