java異常機制分析_java

來源:互聯網
上載者:User

本文執行個體分析了Java的異常機制,分享給大家供大家參考。相信有助於大家提高大家Java程式異常處理能力。具體分析如下:

眾所周知,java中的異常(Exception)機制很重要,程式難免會出錯,異常機制可以捕獲程式中的錯誤,用來提高程式的穩定性和健壯性。

java中的異常分為Checked Exception(非Runtime Exception)和UnChecked Exception(Runtime Exception),所有的異常類都直接或間接的繼承Exception。Exception又直接繼承自Throwable類,Throwable類的直接子類還有error類,不過當出現error時,程式會直接退出執行,程式處理不了error,所以這裡重點討論Exception類。RuntimeException類繼承自Exception,運行時異常都直接或間接繼承自RuntimeException類。其他繼承Exception類的是非運行時異常,在編譯期間可發現。運行時異常是在運行時才會出現的,如算術除零,在編譯期間是可以通過的,但在運行時會拋出運行時異常,除數不能為零。

java的異常處理有兩種

1、捕獲異常

結構如下

try{//執行可能產生異常的代碼}catch(RuntimeException e){//對捕獲的異常進行處理}catch(Exception e)//可定義捕獲多個異常{//對捕獲的異常進行處理}finally{//捕獲完後要執行的代碼,可有可無,如果有的話就一定會執行,不管有沒有異常}try-catch-finally

如果異常被catch捕獲後,後面還有catch語句就不會執行了,但如果有finally的話就一定會執行finally塊裡面的語句。

2、聲明拋出異常

在調用會產生異常的方法所在的方法聲明處聲明throws Exception,此方法將不會對該類異常進行處理,而是由該方法的調用者處理。

3、人為的拋出異常

直接在方法內拋出異常,throw exception;

對於運行時異常推薦不對其進行處理。

自訂異常是定義了一個繼承自Exception類的子類,一般不會定義繼承自RuntimeException類,在try塊中存在return語句時,如果有finally塊語句,那麼也要先執行完finally塊的語句之後再返回,但如果try塊中存在System.exit(0)語句,就不會執行finally塊的語句,因為System.exit(0)會終止當前啟動並執行java虛擬機器,程式會在虛擬機器終止前結束執行。

class myException extends Exception{  public myException(String str)  {    super(str);  }}myException

異常在檔案處理,輸入輸出資料流的應用場合等都會用上。

常見的異常類型有:

1、java.lang.NullPointerException:null 指標異常,出現該異常的原因就是某個引用為null,但程式中又調用了該引用的某個方法。

2、java.lang.ClassNotFoundException :找不到指定的類,可能是類未定義。

3、java.lang.ArithmeticException:算術異常,如除數為零。

4、FileNotFoundException:在檔案處理中,找不到指定的檔案。

5、IOException:輸入輸出資料流異常

6、SQLException:sql異常,執行sql語句出現錯誤。

此外還有許多類型的異常,在以後的編程中會遇到。相信本文所述對大家的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.