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

发布于:2023-07-04 ⋅ 阅读:(159) ⋅ 点赞:(0)

为什么要引用自定义异常呢?
当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);//注意:继承了异常类,就可以调用异常类的构造方法
 }
}

在这里插入图片描述

本文含有隐藏内容,请 开通VIP 后查看