《Java語言程序設計(基礎篇)》讀書筆記(四)

《Java語言程序設計(基礎篇)》讀書筆記(四)
作者:wangzz
轉載請註明出處
如果覺得文章對你有所幫助,請通過留言或關注微信公衆帳號wangzzstrive來支持我,謝謝!

第十三章 異常處理
這是我所瞭解的語言都有的一個機制,重要程度不言而喻。
1、Java中異常類型
Java API中有很多預定義的異常類,如下圖所示:

從圖中可以看出,Throwable類是所有異常類的跟類。圖中所示的異常類可以分爲三種主要類型:
①系統錯誤(system error)
是由Java虛擬機拋出的,用圖中的Error類表示。Error類描述的是內部系統錯誤,一旦發生,除了儘量穩妥地終止程序外,啥都幹不了。
②異常(exception)
用圖中的Exception類表示,它描述的是由程序內部和外部環境所引起的錯誤,這些錯誤能被捕獲和處理。
③運行時異常(runtime exception)
用RuntimeException類表示,是Exception的子類。描述的是程序設計錯誤,通常都是有Java虛擬機拋出的,

2、免檢異常和必撿異常
①免檢異常
RuntimeException、Error以及它們的子類都稱爲免檢異常,編譯器不檢查處理它們,程序員也可以不處理它們,當出現這樣的異常時,總是由虛擬機接管。出現運行時異常後,系統會把異常一直往上層拋,一直遇到處理代碼,如果該異常沒有被處理,程序將會終止。
②必檢異常
除了免檢異常以外的都是必檢異常,編譯器會強制程序員檢查並處理它們

3、聲明和拋出異常
①聲明異常
每個方法都必須顯式聲明它可能拋出的必檢異常的類型,因爲任何代碼都可能發生系統錯誤和運行時錯誤,所以Java不要求顯式聲明Error和RuntimeException類型的免檢異常。
在方法中聲明異常,就要在方法頭中使用關鍵字throws。
需要注意的是,如果方法在父類中沒有聲明異常,那麼就不能在子類中對其進行覆蓋來聲明異常
②拋出異常
當程序中發生錯誤時,可以建立一個異常並通過throw關鍵字將其拋出。

聲明並拋出一個異常的方式如下所示:
public void myMethod() throws IOException { //聲明異常
  if(an error occurs) {
    throw new Exception();//拋出異常
  }
}
提示:聲明異常的關鍵字是throws,拋出異常的關鍵字是throw

4、處理異常
語法如下:
try {
  statements;
}
catch (TheException ex) {
  handling ex;
}
finally {
  finalStatements;
}
各種語言處理異常的方式都大同小異。有下面幾點需要說明:
①finally中的語句無論有沒有異常發生都會執行,而且哪怕finally塊前面有個return語句,還是會執行,足夠牛叉吧;
②catch中的語句只有在try中語句出現異常纔會執行;
③try中是可能出現異常的功能代碼。

5、何時使用異常
由於異常處理是需要耗費系統資源的,不應該將其簡單的用於邏輯測試,使用需謹慎。

未完待續。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章