Java異常機制

來源:互聯網
上載者:User

標籤:必須   img   根據   throws   軟體程式   cat   size   處理   父類   

Java異常機制

  軟體程式在運行過程中,非常可能遇到剛剛提到的這些問題,我們稱之為異常,英文是:Exception。在Java的異常處理機制中,引進了很多用來描述和處理異常的類,稱為異常類。異常類定義中包含了該類異常的資訊和對異常進行處理的方法。 所謂異常處理,就是指程式在出現問題時依然可以正確的執行完。
Java是採用物件導向的方式來處理異常的。處理過程:
1. 拋出異常:在執行一個方法時,如果發生異常,則這個方法產生代表該異常的一個對象,停止當前執行路徑,並把異常對象提交給JRE。
2. 捕獲異常:JRE得到該異常後,尋找相應的代碼來處理該異常。JRE在方法的調用棧中尋找,從產生異常的方法開始回溯,直到找到相應的異常處理代碼為止。
常見的異常:
1:ArithmeticException 數學異常,被0除
2:InputMismatchException 輸入類型不符異常 
3:java.lang.ArrayIndexOutOfBoundsException:數組下標越界異常。
4:java.io.IOException : javaIO 異常。
5:java.lang.NullPointerException:null 指標異常,使用了尚未初始化的對象。
異常的分類:

Error
Error是程式無法處理的錯誤,表示運行應用程式中較嚴重問題。大多數錯誤與代碼編寫者執行的操作無關,而表示代碼運行時 JVM(JAVA 虛擬機器)出現的問題。

Exception
Exception是程式本身能夠處理的異常,如:null 指標異常(NullPointerException)、數組下標越界異常(ArrayIndexOutOfBoundsException)、類型轉換異常(ClassCastException)、算術異常(ArithmeticException)等。
Exception類是所有異常類的父類,其子類對應了各種各樣可能出現的例外狀況事件:Java異常可分為:
1. RuntimeException 運行時異常  
2. CheckedException 已檢查異常
RuntimeException運行時異常
這類異常通常是由編程錯誤導致的,所以在編寫程式時,並不要求必須使用異常處理機制來處理這類異常,經常需要通過增加“邏輯處理來避免這些異常”。
null 指標異常:

解決null 指標異常:

數組角標越界異常:

CheckedException已檢查異常
  所有不是RuntimeException的異常,統稱為Checked Exception,又被稱為“已檢查異常”,如IOException、SQLException等以及使用者自訂的Exception異常。 這類異常在編譯時間就必須做出處理,否則無法通過編譯.

異常處理方式:常的處理方式有兩種:使用“try/catch”捕獲異常、使用“throws”聲明異常。
異常的處理方式之一:捕獲異常
     捕獲異常是通過3個關鍵詞來實現的:try-catch-finally。用try來執行一段程式,如果出現異常,系統拋出一個異常,可以通過它的類型來捕捉(catch)並處理它,最後一步是通過finally語句為異常處理提供一個統一的出口,finally所指定的代碼都要被執行(catch語句可有多條;finally語句最多隻能有一條,根據自己的需要可有可無)。
注意點:
1、一個try語句必須帶有至少一個catch語句塊或一個finally語句塊,當異常處理的代碼執行結束以後,不會回到try語句去執行尚未執行的代碼。
2、每個try語句塊可以伴隨一個或多個catch語句,用於處理可能產生的不同類型的異常對象。
3、不管是否發生了異常,即使try和catch塊中存在return語句,finally都必須要執行
4、finally語句塊只有一種情況是不會執行的,那就是在執行finally之前遇到了System.exit(0)結束程式運行。
異常的處理方式之二:聲明異常(throws子句)
當CheckedException產生時,不一定立刻處理它,可以再把異常throws出去。如果一個方法拋出多個已檢查異常,就必須在方法的首部列出所有的異常,之間以逗號隔開。
throw:
1:只能用於方法體內。
2:後面跟異常對象。
3:只能跟一個異常對象
throws:
1:用在方法的聲明處。參數列表的後面方法體的前面。
2:後面跟異常的類型。
3:可以跟多個異常類型。使用 逗號 分隔。

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.