(一)java异常处理的几个问题

时间:2022-05-28 15:33:37

1.java中两种异常?

答:java中存在两种异常:受检查(checked)异常和不受检查(unchecked)异常。不受检查的异常不需要在方法或者构造函数上声明,就算是方法或是构造函数会发生这样的异常,并且不受检查的异常可以传播到方法或是构造函数的外面。而受检查的异常必须要用throws在方法或者构造函数上声明

2.java中Exception和Error有什么区别?

答:Exception和Error都是Throwable的子类。Exception用于用户程序能够捕获的异常,而Error则不期望用户程序能够捕获的异常情况。

3.throw和throws有什么区别?

答:throw用来明确应用程序中要抛出的异常,而throws语句则用来表明方法中不能处理的异常。每个方法都必须要指定哪些异常不能处理,所以方法的调用者才会确保处理所有可能的异常。多个异常用”,“来隔开

4.异常处理的时候,finally代码块的重要性是什么?

答:无论是否抛出异常,finally代码块最终都会被执行。就算是没有catch语句块同时又抛出异常的情况finally代码块也会执行。finally代码块用来释放占用的资源。比如IO缓冲区、数据库连接

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

答:异常处理完成后,Exception对象会在下一个垃圾回收周期被回收掉

6.finally代码块和finalize()方法有什么区别?

答:无论异常是否被抛出,finally代码块最终都会被执行,其作用是释放应用中占用的资源。而finalize()方法是Object类中的一个protected方法,在对象被垃圾回收前由JVM调用