-1-6 java 異常簡單介紹 java異常 異常體系 Throwable 分類 throws和throw 異常處理 自定義異常


 
異常
 
異常:異常就是Java程序在運行過程中出現的錯誤。
異常由來:問題也是現實生活中一個具體事務,也可以通過java 的類的形式進行描述,並封裝成對象。
其實就是Java對不正常情況進行描述后的對象體現。
Throwable
        |--Error        嚴重問題,我們不處理。
        |--Exception
                |--RuntimeException        運行期異常,我們需要修正代碼
                |--非RuntimeException 編譯期異常,必須處理的,否則程序編譯不通過
 
 
Exception和Error的子類名都是以父類名作為后綴。
 
Java中的異常被分為兩大類:編譯時異常和運行時異常。
所有的RuntimeException類及其子類的實例被稱為運行時異常,其他的異常就是編譯時異常
編譯時異常
•Java程序必須顯示處理,否則程序就會發生錯誤,無法通過編譯
運行時異常
•無需顯示處理,也可以和編譯時異常一樣處理
 
 
Throwable基本方法
getMessage()
•獲取異常信息,返回字符串。
toString()
•獲取異常類名和異常信息,返回字符串。
printStackTrace()
•獲取異常類名和異常信息,以及異常出現在程序中的位置。返回值void。
printStackTrace(PrintStream s)
•通常用該方法將異常內容保存在日志文件中,以便查閱。
 
 
throws和throw
throws
•用在方法聲明后面,跟的是異常類名
•可以跟多個異常類名,用逗號隔開
•表示拋出異常,由該方法的調用者來處理
•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,不能throws
3.父的方法拋出多個異常,子的重寫方法必須比父少或者小,不能拋出新的異常
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM