Java学习笔记;异常类

异常类
java使用throw关键字抛出一个Exception子类的实例表示异常的发生
大致格式为
try{
包含可能发生异常的语句,若发生异常,则立即转向执行catch的语句
}
catch(ExceptionSubClass e){ //catch后面是个异常类的对象,我们可以通过extends继承Excetion类来自定义异常类
发生异常后执行的语句;
}

自定义异常类 BankException.java
public class BankException extends Exception{ //这里继承了Exception来实现自定义异常类
String m;
public BankException (int a,int b) { 异常类构造方法
m=“入账资金是”+a+“是负数或者支出”+b+“是正数不符合系统要求”;
}
public String wm() { //输出异常类提示信息
return m;
}
}

异常的判断函数Bank.java
public class Bank {
private int mo;
public void in(int i,int o) throws BankException{ //使用throws关键字声明要产生异常
//System.out.println(“本次计算的纯收入为;”++“d元”);
if(i<=0 || o>=0 || i+o<=0) { //是否抛出异常判断
throw new BankException(i,o); //抛出异常,这里使用new建立BankException对象,使用其构造方法,传递了2个参数
}
int net=i+o;
System.out.println(“本次计算的纯收入为;”+net+“元”);
mo+=net;
System.out.printf(“银行目前有%d元\n”,mo);
}
public int getMo()
{
return mo;
}
}
主要实现函数Example7_5.java
public class Example7_5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Bank bank=new Bank();
try {bank.in(200, -100);
bank.in(300, -100);
bank.in(400, -100);
//System.out.printf(“银行目前有%d元\n”,bank.getMo());
bank.in(300, 100);//这里参数不合理,抛出异常转到catch
bank.in(99999, -100); //这条语句不会被执行
}
catch (BankException e) { //注意参数为自定义异常类的对象
System.out.println(“计算收益的过程出现如下问题:”);
System.out.println(e.wm());//输出异常提示信息
}
System.out.println(“银行目前有:”+bank.getMo()+“元”);
}
}

程序执行过程为
主函数建立Bank对象-
–》主函数在try语句中调用Bank中的方法in(int x,int y)实现存钱功能
–》在in方法in(int x,int y)中含有if(){throw new BankException(i,o);}语句,判断是否抛出异常
–》假如没有抛出异常,正常运行结束
–》假如抛出异常throw new BankException(i,o);语句中throw关键字抛出异常并转到catch语句执行,new BankException(i,o);语句建立BankException对象并将出问题的参数传递到BankException.java异常类,
–》异常类BankException.java构造方法中生成异常信息
–》主函数调用e.wm()返回异常信息并输出。

程序结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值