4.2.4.1 throw和throws有什么差别?异常(Exception)和错误(Error)有什么差别?
throw语句表示抛出异常,由方法体内的语句处理。throws语句用在方法声明后面,表示如果抛出异常,由该方法的调用者来处理。
throws主要是声明这个方法会抛出这种类型的异常,使它的调用者知道要捕获这个异常。throw是具体向外抛异常的动作,所以它是抛出一个异常实例。
4.2.4.2 final、finalize和finally这三个相似的关键字有什么差别?
final可以定义常量,如果作用在类上,这个类就不能被继承。
finalize方法里可以放回收对象时需要指定的动作,但一般不重写。
finally是try...catch...finally里的,不管是否发生异常,以及发生了何种异常,finally都会被执行。
4.2.4.3 如果我们采用try…catch…finally的形式来处理异常,如果在try部分有return语句,那么finally部分的代码会不会执行?
会执行,所以在finally从句里,一般会放回收资源的动作。
4.2.4.4 运行期异常(RuntimeException)和其它异常(比如SQLException)有什么差别?你在平时开发中用过哪些运行期异常?
运行期异常可以不用try..catch包含起来,运行期异常一般有除零异常,空指针异常以及数组越界异常。
4.2.4.5 你一般在finally从句里放哪些代码?
所以在finally从句里,一般会放回收资源的动作。
4.2.4.6 如果父类的某个方法抛出了一个异常,那么子类在覆盖父类的这个方法时,有什么限制?为什么要规定这个限制?
请参与本书异常部分的描述。
4.2.4.7 你有没有自己定义过异常对象?如何自定义异常对象?
自定义异常可以通过throw抛出。