java再复习——异常总结

异常体系:

Throwable顶层接口:

Error:错误体系,发生这种错误,代表发生了不可挽回的错误,JVM会直接停止运行,并不提供任何可处理机制,只打印相关错误信息。

Exception:异常体系,发生这种异常,相当于生病,有的可处理,有的不可处理,但是都是只是“病”,没有致命的问题,可以解决。

RuntimeException:作为Exception的子类,RuntimeException的行为比较特殊,与Exception表现出不同的状态与行为,以下仔细分析。


Throwable作为顶层接口,具体使用时Error和Exception两个体系,Error我们不常定义使用,Exception常使用。


throw和throws的区别:

throw:抛出一个异常对象,并且在函数内使用,每次只能抛出一个对象。在函数内抛出了异常,需要在函数上声明throws相对应的异常类(RuntimeException例外)

throws:在函数上声明,可以抛出多个异常类,在函数上声明了throws,调用此函数需要进行try{}catch{}处理。(RuntimeException例外)


Throwable体系的特点:都可以被抛出,而且throw和throws关键字也只能操作Throwable体系的类和对象。


处理机制:

三种语法:

try {
	
} catch (Exception e) {
	
}

注意:catch可以是多个,但是所捕捉到的异常如果有子父类关系,父类必须放在子类后面。

try {
	
} finally{
	
}
finally语法是一定会执行的语句,除非System.exit(0)虚拟机退出,否则的话,就算return了,finally语句块也一定会执行。

try {
	
} catch (Exception e) {

} finally{
	
}

前两种的结合。


注意:我们所谓的处理异常,是在catch块中处理异常,如果没有catch就不叫异常处理。比如:

try {
	Thread.sleep(10);
}finally{
	
}
常见的代码,虽然我们try了,但是并没有catch异常,所以这里是编译通不过的。


再比如:

		try {
			Thread.sleep(10);
		}catch (Exception e){
			throw e;
		}


这样,在catch里面又抛出了一个异常,那么还是属于没处理异常,编译也通不过。

		try {
			throw new Exception();
		}catch (RuntimeException e){
			
		}


这样也是编译通不过的,因为在try里面throw了异常,但是在catch里面没有捕获异常。


值得注意的问题:

在函数内抛出运行时异常,不需要在函数上声明,如果在函数上声明了也不需要再调用的时候try{}catch{}。









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值