Object類和異常

Object類(全部類的頂級父類)jvm

今天說的兩個方法:
equals:
        用於比較兩個對象是否相同,它實際上是使用兩個對象的內存地址進行比較,底層默認使用的是==比較運算符來判斷的。
        在之後開發中,要比較兩個對象是否相同,常常會根據對象中的屬性值進行比較。也就是常常須要重寫Object類中的equals方法,根據對象的屬性值進行比較
        注意:在重寫Object類中的equals方法時,必定要注意參數是Object類型,在調用對象的屬性時,必定要進行類型轉換,在轉換以前必定要進行類型判斷
toString:
        返回該對象的字符串表現形式。其實該字符串內容就是對象的類型+@+內存地址值。
        在開發中,常常須要按照對象的屬性獲得相應的字符串表現形式,所以也須要重寫它。
        注意:在咱們直接使用輸出語句輸出對象名的時候,其實經過該對象調用了其toString()方法.
異常:(分爲運行時異常和編譯時異常)
異常的概念:
        異常自己是一個類,產生異常就是建立異常對象並拋出(throw)了一個異常對象。Java處理異常的方式是中斷處理。
 頂級父類:Throwable
子類:Exception、Error(不可修改錯誤。不用咱們處理)
Exception子類:
RuntImeException(運行時異常)
運行時異常(RuntimeException):運行時可能會報錯,能夠不處理。
編譯時異常(Exception):編譯時沒法編譯經過。
自定義異常:
自定義運行時異常:須要繼承RuntimeException。寫構造方法便可
自定義編譯時異常:須要繼承Exception。寫構造方法便可
自定義異常:須要手動拋出異常
自定義異常格式:
Class 異常名 extends Exception{ //或繼承RuntimeException
        public 異常名(){
        }
}
 
處理異常:try{}catch(異常對象){}
捕獲處理,將異常獲取,使用try/catch作分支處理
格式:
try{
        須要檢測的異常;
}catch(異常對象) {
        異常處理代碼:
        能夠調用異常的方法一般咱們只使用一個方法: printStackTrace打印異常信息
}
另外兩種處理方式:
        1.聲明拋出處理,出現異常後不處理,聲明拋出給調用者處理。
        格式:
                方法聲明上加throws 異常類名
        2.拋出異常 使用throw關鍵字。寫在方法內部。
        格式:
                throw new 異常類名(參數);
        3.拋出指定異常的具體操做步驟:
                1,建立一個異常對象。封裝一些提示信息(信息能夠本身編寫)。
                2,須要將這個異常對象告知給調用者。怎麼告知呢?怎麼將這個異常對象傳遞到調用者處呢?經過關鍵字throw就能夠完成。throw 異常對象;
        throw用在方法內,用來拋出一個異常對象,將這個異常對象傳遞到調用者處,並結束當前方法的執行。
注意:異常處理,指處理的一種可能性,即有了異常處理的代碼,不必定會產生異常。
若是沒有產生異常,則代碼正常執行,若是產生了異常,則中斷當前執行代碼,執行異常處理代碼。
 
捕獲異常:try{}catch(異常對象){}finally{}
        格式:
try {
        //須要被檢測的語句。
}catch(異常類變量) { //參數。
        //異常的處理語句。
}finally {
        //必定會被執行的語句。
}
 
異常的注意事項:
        多異常處理
                捕獲處理:
                    1多個異常分別處理
                    2多個異常一次捕獲屢次處理
                    3多個異常一次捕獲一次處理
        聲明拋出異常:
                聲明上使用,一次聲明多個異常
                運行時異常被拋出以前能夠不處理。即不捕獲也不聲明拋出
                若是父類拋出了多個異常,子類覆蓋父類方法時,只能拋出相同的異常或者是他的子集
                父類方法沒有拋出異常,子類覆蓋父類該方法時也不可拋出異常。此時子類產生該異常,只能捕獲處理,不能聲明拋出
 
                當多異常處理時,捕獲處理,前邊的類不能是後邊類的父類
                在try/catch後能夠追加finally代碼塊,其中的代碼必定會被執行,一般用於資源回收。
                一個try 多個catch組合 : 對代碼進行異常檢測,並對檢測的異常傳遞給catch處理。對每種異常信息進行不一樣的捕獲處理。
注意:
        這種異常處理方式,要求多個catch中的異常不能相同,而且若catch中的多個異常之間有子父類異常的關係,那麼子類異常要求在上面的catch處理,父類異常在下面的catch處理。
        try finally 組合: 對代碼進行異常檢測,檢測到異常後由於沒有catch,因此同樣會被默認jvm拋出。異常是沒有捕獲處理的。可是功能所開啓資源須要進行關閉,全部finally。只爲關閉資源。
相關文章
相關標籤/搜索