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章中的描述) 

你可能感兴趣的:(基础回顾)