JAVA 异常 exception

①异常
异常是一种Exception类型的对象,异常是多态的
java.lang.Throwable

继承关系:
Throwable--->Exception---->IOException...

RuntimeException:执行期间抛出的异常,不检查异常,不用catch,throw,但是你catch,throw了没人会阻拦你
继承关系:
RuntimeException--->ClassCastException / NullPointerException/...

②方法抛出异常
方法的()后面声明可能会抛出的异常, throws Exception
可以同时抛出多个异常

声明的可能会抛出的异常可以不在方法体内部出现throw,比如throws Exception1,Exeption2,方法体中可以不写throw Exception1,因为有些异常是系统自动抛出的
但是程序有可能抛出异常就一定要throws,不然编译期间就会出现错误

JAVA 异常 exception - 小镜子~ - 菜园子
 
③调用可能抛出异常的方法
解决方案①:处理(catch掉)
可能抛出异常的部分要用try{} catch(){}包围 可以加上finally块
  JAVA 异常 exception - 小镜子~ - 菜园子
有try catch finally的程序代码执行顺序是这样的(经过试验):
先执行try 块,从上至下执行代码,直到遇到抛出异常的语句。
立即跳入catch块(try块抛出异常的语句后面的那部分直接被舍弃)
执行catch块内的代码
最后执行finally块的代码

try,catch,finally的四个使用规则:
try后面一定要跟catch或finally
如果try后面只有finally,那么这个方法一定要声明throws这个异常见 解决方案②
有catch或finally,则前面一定要有try
try 和catch之间不能有其他代码



finally块使程序的各部分功能划分更明确,并能避免紊乱

如果被调用的方法抛出了多种异常,那么调用的时候就要写多个catch块,注意要
从小到大catch,不然小的子类的异常的catch 块永远都没有机会被使用到
比如:
try{
//...
}catch(IOException){
//...
}catch(Exception){
//...
}

解决方案②:不处理(声明throws这个异常)
如果不catch异常就要把它throws掉:
JAVA 异常 exception - 小镜子~ - 菜园子
 
不过这不是长久之计,不能所有人都不处理异常。
如果最后main函数都不能处理这个异常,JAVA虚拟机只好死给你看:(虽然编译器不会报错)
JAVA 异常 exception - 小镜子~ - 菜园子
 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值