java學習------異常

來源:互聯網
上載者:User

標籤:異常   java   

異常,什麼是異常?簡單的說異常是一種處理機制。將使用者所沒有考慮到的錯誤進行處理。因為程式員無法保證一段代碼永遠不會出錯。

java中異常通過5個關鍵字:try , catch , throw , throws , finally。其中,try關鍵字後緊跟一個花括弧括起來的代碼塊(花括弧不可省略)簡稱try塊。它裡面放置可能引發異常的代碼。catch後對應異常類型和一個代碼塊,用於表明該catch塊用於處理這種類型的代碼塊。多個catch塊後還可以緊跟一個finally塊,finally塊用於回收在try塊裡開啟的實體資源,異常機制會保證finally塊總被執行。throw關鍵字主要在方法簽名中使用,用於聲明該方法可能拋出的異常,而throw用於拋出一個實際的異常,throw可以單獨作為語句使用,拋出一個具體異常對象。

try{ 若執行代碼出現異常 } catch(Exception e){異常處理部分} 異常處理完後,程式繼續執行。catch()括弧中為捕捉到的異常。異常類型不知道就寫Exception。e.printStackTrace() 簡單理解為列印異常資訊。

*一段代碼不能連著拋2個異常,因為第二個無法拋出,即使第二個拋出了,也是在第一個解決了的情況下。

*無法用邏輯判斷的用異常方便。(異常的意義)

異常的處理方式有2種。①try{}catch(){}自己處理異常。②在方法後加throws 交給java虛擬機器處理。

異常處理步驟:try{} catch(1){} catch(2){} ... finally{} 無論是否捕獲異常,finally都會去執行。finally對所有異常進行統一的管理。一般finally是對記憶體回收等機制的管理。

異常分類:①、Error 系統錯誤。 ②、Exception 必須處理的異常。 ③、RuntimeException 可處理,也可不處理的異常。

自訂異常,throws new。。。 並繼承Exception。

void f() throws A

{

}

*throws A表示調用f方法時,f方法可能會拋出A類異常,建議您調用f方法時最好對f方法可能拋出的A類異常進行捕捉。

*throws A不表示f方法一定會拋出A類異常,f方法可以不拋出異常。

*throws A不表示調用f方法時,必須對A類異常進行捕捉。假設A是RuntimeException子類異常,由於RuntimeException的子類異常可處理也可不處理,所以編譯器允許調用f方法時,對f方法拋出的RuntimeException子類異常不進行處理。(但是,強烈建議,對throws出的所有異常進行處理,如果一個方法內部已經對A異常進行了處理,就不要在throws A了)

*先catch子類異常再catch父類異常

*catch與catch之間不能有其他代碼。

*重寫方法拋出異常範圍不能大於被重寫方法排除的異常範圍。

異常的優點:①、強製程序員考慮程式的安全性和可控性。

②、有利於代碼調試。

③、把錯誤處理代碼從常規代碼中分離出來。

java學習------異常

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.