JAVA中異常狀況總結
之前在《會當淩絕頂》這本書中學到過對於異常處理的知識,當時也是根據書上的代碼,自己進行編寫大概知道是怎麽回事兒,王老師給我們上了一節課之後,發現異常處理可以發揮很大的作用。 通過在網絡上搜索資料,對異常處理有以下的總結。
異常是程序中的一些錯誤,但並不是所有的錯誤都是異常,並且錯誤有時候是可以避免的。比如說,你的代碼少了一個分號,那麽運行出來結果是提示是
錯誤java.lang.Error;如果你用System.out.println(11/0),那麽你是因為你用0做了除數,會拋出java.lang.ArithmeticException的異常。 有
些異常需要做處理,有些則不需要捕獲處理,後面會詳細講到。 天有不測風雲,人有旦夕禍福,Java的程序代碼也如此。在編程過程中,首先應
當盡可能去避免錯誤和異常發生,對於不可避免、不可預測的情況則在考慮異常發生時如何處理。 Java中的異常用對象來表示。Java對異常的處
理是按異常分類處理的,不同異常有不同的分類,每種異常都對應一個類型(class),每個異常都對應一個異常(類的)對象。 異常類從哪裏來
?有兩個來源,一是Java語言本身定義的一些基本異常類型,二是用戶通過繼承Exception類或者其子類自己定義的異常。Exception 類及其子類是
Throwable 的一種形式,它指出了合理的應用程序想要捕獲的條件。 異常的對象從哪裏來呢?有兩個來源,一是Java運行時環境自動拋出系統生
成的異常,而不管你是否願意捕獲和處理,它總要被拋出!比如除數為0的異常。二是程序員自己拋出的異常,這個異常可以是程序員自己定義的,也可以
是Java語言中定義的,用throw 關鍵字拋出異常,這種異常常用來向調用者匯報異常的一些信息。 異常是針對方法來說的,拋出、聲明拋出、捕
獲和處理異常都是在方法中進行的。 Java異常處理通過5個關鍵字try、catch、throw、throws、finally進行管理。基本過程是用try語句塊包住
要監視的語句,如果在try語句塊內出現異常,則異常會被拋出,你的代碼在catch語句塊中可以捕獲到這個異常並做處理;還有以部分系統生成的異常在
Java運行時自動拋出。你也可以通過throws關鍵字在方法上聲明該方法要拋出異常,然後在方法內部通過throw拋出異常對象。finally語句塊會在方法執
行return之前執行,一般結構如下:
try{
程序代碼
}catch(異常類型1 異常的變量名1){
程序代碼
}catch(異常類型2 異常的變量名2){
程序代碼
}finally{
程序代碼
} catch語句可以有多個,用來匹配多個異常,匹配上多個中一個後,執行catch語句塊時候僅僅執行匹配上的異常。catch的類型是Java語言中定
義的或者程序員自己定義的,表示代碼拋出異常的類型,異常的變量名表示拋出異常的對象的引用,如果catch捕獲並匹配上了該異常,那麽就可以直接用
這個異常變量名,此時該異常變量名指向所匹配的異常,並且在catch代碼塊中可以直接引用。這一點非常非常的特殊和重要! Java異常處理的目
的是提高程序的健壯性,你可以在catch和finally代碼塊中給程序一個修正機會,使得程序不因異常而終止或者流程發生以外的改變。同時,通過獲取
Java異常信息,也為程序的開發維護提供了方便,一般通過異常信息就很快就能找到出現異常的問題(代碼)所在。
JAVA中異常狀況總結