第十二章:異常
1、Java的基本理念:結構不佳的代碼不能運行
- 異常的體系結構:
Throwable:Exception+Error
- 異常處理有2種模型:終止模型(Java和C++所支持的)、恢復模型
2、異常說明
- 可以聲明方法將異常拋出,實際卻不拋出
- 這樣的好處是:預留站位。尤其在定義抽象類或者接口的時候,不必因爲後續的方法產出異常,而回過頭來修改類結構
3、如果構造器內拋出了異常,慎用finally塊
- 當對象的構造器拋出異常時,最安全的使用方式是嵌套try子句
public class Cleanup {
public static void main(String[] args) {
try{
InputFile in = new InputFile("Cleanup.java");
try{
String s;
int i = 1;
while((s = in.getLine()) != null){
}
} catch(Exception e) {
System.out.println("Caught Exception in main");
e.printStackTrace(System.out);
} finally {
in.dispose();
}
} catch(Exception e) {
System.out.println("InputFile construction failed");
}
}
}
4、異常處理的優勢
- 將錯誤發生的地點與錯誤處理的代碼相分離,便於理解與維護。
5、關於編譯時異常
- 作者提出在小程序裏面,異常聲明有助於增加開發人員的效率,提高代碼質量。但是考察大項目時,開發效率卻下降了,而且代碼質量只有微不足道的提高。(這個地方暫時沒有深刻體會)