java基础回顾之异常处理

1.java中的两种异常类型是什么?它们有什么区别?

一个是unchecked的异常,它是error 和 runtimexception 的子类。error 是java自己的错误或者内存耗尽等严重错误是不可抗拒的。runtimexception 是程序有逻辑错误,如空指针,类转换,数据类型转换等,是需要程序员开发过程中尽量避免的。

另一个是checked的异常,它是exception的子类,如果不捕捉就会导致程序的终止,它需要强制catch异常,比如IOExcption, SQLException等。


2.exception和error的区别

exception和error都是throwable的子类。exception用于用户程序可以捕获的异常情况。error定义了不期望被用户程序捕捉的异常。


3.throw和throws有什么区别

throw 用来在程序中明确的抛出异常,相反,throws用来表明方法中不能处理的异常。每一个方法必须要指定哪些异常不能处理,所以方法的调用者才能够确保处理可能发生的异常,多个异常是用逗号隔开的。


4.异常处理完成以后,exception的对象会发生什么变化?

exception对象会在下一次垃圾回收处理的时候被释放掉。


5.finally代码块和finalize()方法的区别?

不管是否报出异常,catch后面的finally代码块都会执行,它主要用来释放应用占用的资源,并且它return的数据会覆盖之前try代码块和catch代码块中的return。 

finalize()方法是object类的一个protected方法,它在对象被垃圾回收之前有JVM来调用(见GC章中的描述) 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值