Java 學習回顧(二)
(1)Java支援在一個類中宣告另一個類,這樣的類稱為內部類,而包含內部類的類稱為內部類的外嵌類。
(2)和某類有關的匿名類就是這類的一個子類,該子類沒有明顯地用類宣告來定義,所以稱為匿名類
(3)和某類有關的匿名類就是實現該介面的一個子類,該子類沒有明顯地用類宣告來定義,所以稱作匿名類
(4)Java的異常可以出現在方法呼叫過程中,即在方法呼叫的過程中丟擲異常物件,導致程式執行出現異常,並等 待處理。Java使用try-catch語句來處理異常,將可能出現的異常操作放在try-catch語句的try部分,當try部 分中的某個方法呼叫發生了異常後,try部分將立刻結束執行,轉向相應的catch部分。
接下來詳細講一下異常類:
Java使用throw關鍵字丟擲一個Exception子類的例項表示異常的發生。比如Integer.parseInt("ab12")會丟擲NumberFormatException物件,流物件呼叫read去讀取不存在的檔案,就會丟擲IOException。
異常物件可以下面方法輸出異常物件的資訊
public String getMessage();
public void printStackTrace();
public String toString();
try-catch語句與try-catch-finally語句
1.try-catch
try-catch是用來處理異常的,將可能出現異常的操作放在try裡面,一旦丟擲異常,轉向執行catch部分。try-catch語句可以由幾個catch組成,分別處理相應的異常。
try{
//可能發生異常的程式碼
}catch(ExceptionSubClass1 e) {
...
}catch(ExceptionSubClass2 e) {
...
}
try-catch-finally
try { //執行的程式碼,其中可能有異常。一旦發現異常,則立即跳到catch執行。否則不會執行catch裡面的內容 }
catch { //除非try裡面執行程式碼發生了異常,否則這裡的程式碼不會執行 }
finally { //不管什麼情況都會執行,包括try catch 裡面用了return ,可以理解為只要執行了try或者catch,就一定會執行 finally }
注:如果try-catch結構中執行程式退出程式碼,即執行System.exit(0),則不執行finally子語句
public class test3 {
public static void aMethod() throws Exception{
try{
throw new Exception();
}finally{
System.out.println("finally");
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
aMethod();
}catch(Exception e){
System.out.println("exception");
}
System.out.println("finish");
}
}
無論是try裡面丟擲異常,還是丟擲異常進入catch處理,最終還是進入finally處理。
這一機制也非常有用:
比如資料庫連線模組中,無論try,還是catch,進行了return操作,都會執行finally,可以finally內部執行關閉資料庫連線操作。以便於釋放已經產生的連線,釋放資源。