標籤:分類 尾碼 style 沒有 dem mil line 現實生活 add
異常 異常:異常就是Java程式在運行過程中出現的錯誤。異常由來:問題也是現實生活中一個具體事務,也可以通過java 的類的形式進行描述,並封裝成對象。其實就是Java對不正常情況進行描述後的對象體現。Throwable |--Error 嚴重問題,我們不處理。 |--Exception |--RuntimeException 運行期異常,我們需要修正代碼 |--非RuntimeException 編譯期異常,必須處理的,否則程式編譯不通過 Exception和Error的子類名都是以父類名作為尾碼。 Java中的異常被分為兩大類:編譯時間異常和運行時異常。所有的RuntimeException類及其子類的執行個體被稱為運行時異常,其他的異常就是編譯時間異常編譯時間異常?Java程式必須顯示處理,否則程式就會發生錯誤,無法通過編譯運行時異常?無需顯示處理,也可以和編譯時間異常一樣處理
Throwable基本方法
getMessage()?擷取異常資訊,返回字串。toString()?擷取異常類名和異常資訊,返回字串。printStackTrace()?擷取異常類名和異常資訊,以及異常出現在程式中的位置。傳回值void。printStackTrace(PrintStream s)?通常用該方法將異常內容儲存在記錄檔中,以便查閱。
throws和throwthrows?用在方法聲明後面,跟的是異常類名?可以跟多個異常類名,用逗號隔開?表示拋出異常,由該方法的調用者來處理?throws表示出現異常的一種可能性,並不一定會發生這些異常throw?用在方法體內,跟的是異常對象名?只能拋出一個異常對象名?表示拋出異常,由方法體內的語句處理?throw則是拋出了異常,執行throw則一定拋出了某種異常
異常處理過程
JVM的預設處理 把異常的名稱,原因,位置等資訊輸出在控制台,但是程式不能繼續執行了。自己處理 try...catch...finally 自己編寫處理代碼,後面的程式可以繼續執行 throws 把自己處理不了的,在方法上聲明,告訴調用者,這裡有問題
try
{
需要檢測的代碼;
}
catch
(異常類 變數)
{
異常處理代碼;
}
finally
{
一定會執行的代碼;
}
Finally代碼塊控制的語句體一定會執行
只有一種情況不會被執行。就是在之前執行了System.exit(0)。
主要用於釋放資源
常見變形形式 try...catch...finally try...catch... try...catch...catch... try...catch...catch...fianlly try...finally
自訂異常自訂類繼承Exception或者其子類,只需要提供無參構造和一個帶參構造即可通過建構函式定義異常資訊。
例:
Class DemoException extends Exception{ DemoException(String message) { super(message); }}
通過throw將自訂異常拋出。 RuntimeException以及其子類如果在函數中被throw拋出,可以不用在函數上聲明。1.父的方法有異常拋出,子的重寫方法在拋出異常的時候必須要小於等於父的異常,也就是必須拋出相同的異常或異常的子類2.父的方法沒有異常拋出,子的重寫方法不能有異常拋出,如果子類方法內有異常發生,那麼子類只能try,不能throws3.父的方法拋出多個異常,子的重寫方法必須比父少或者小,不能拋出新的異常
-1-6 java 異常簡單介紹 java異常 異常體系 Throwable 分類 throws和throw 異常處理 自訂異常