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调用