學習筆記之《Java核心技術卷I》---- 第七章 異常、斷言和日誌
阿新 • • 發佈:2018-12-15
- 異常物件都是派生與Throwable的一個例項
- 派生於Error類或RuntimeException類的所有異常稱為非受查異常,所有其他異常稱為受查異常
- 一個方法必須宣告所有可能丟擲的受查異常,而非受查異常要麼不可控制,要麼就應該避免發生
- 關鍵字throws位於方法之後,宣告該方法可能丟擲異常;throw 關鍵字對位於方法之內,意為丟擲異常
- 所有派生的異常類都支援一個預設的構造器和一個帶有詳細描述資訊的構造器
- 不允許在子類的throws說明符中出現超過超類方法所列出的異常類範圍
- try{ }catch{ }finally{ }程式碼塊執行步驟
- try{ try{ } finally{ } }catch{ }
- 在try{ }finally{ }中,若finally塊和try塊中都含有return語句,那麼finally的return會覆蓋try中的return。程式碼如下:
public static void main(String[] args) {
System.out.println(f(2));//2
}
public static int f(int x) {
try {
return x * x;
} finally {
return x;
}
}
}
- 帶資源的try語句:不論這個塊如何退出,在try中開啟的資源都會關閉
try(Scanner in = new Scanner(new FileInputStream("./test.txt"));//可以寫多個資源,每個資源用分號隔開 PrintWriter out = new PrintWriter("out.txt")){ while (in.hasNextLine()) { out.println(in.nextLine()); }
- 早丟擲,晚捕獲
- 日誌:過