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拋出。