java基礎篇(三)——異常問題

引言:

              異常不是錯誤,請你別誤會,反而我們可以說錯誤是一種異常。

概述:

              異常:程序運行過程中可能出現的非正常狀態。

內容:

               一 Java異常分類           

             (1)Java不同類型的異常分別用不同的Java類表示。所有異常的根類爲java.lang.Throwable,Throwable派生倆個子類Error和Exception。Error表示程序無法克服和回覆的嚴重問題;Exception表示程序可以克服和恢復問題,分爲系統異常和普通異常。系統異常指因軟件開發人員考慮不周所導致軟件本身缺陷問題,軟件使用者無法克服或者恢復這種問題,這種問題下軟件或者繼續運行或者卡死。例如我們電腦的軟件因爲特殊原因強制退出,或者卡死狀態。普通異常是運行環境改變或異常所導致的問題,例如網絡異常、空間不夠等。

             (2)解決方案:對於普通異常,java編譯器強制普通異常必須try...catch處理或用throws聲明繼續拋給上層調用方法處理,也稱之爲checked異常;然而系統異常可以處理也可以不處理,編譯器不強制用try...catch處理或throws聲明,固稱之爲unchecked異常。

             二 Java異常處理原理及其機制

             (1)原理:一個方法在執行過程中拋出異常,JVM必須找到能捕獲該異常的catch代碼塊,首先先檢查本方法是否存在這樣的catch代碼塊,如果存在,則執行該處理異常代碼塊;若不存在,JVM會從調用棧中彈出該方法的棧結構,繼續到前一個方法中查找合適的catch代碼塊,在不斷回溯查找過程中,若在某一個方法中找到了能處理該異常的代碼塊,則該方法的棧結構將成爲棧頂元素,程序流程將轉到該方法的異常處理代碼部分繼續執行,但是如果JVM追溯到調用棧的底部方法時,仍然沒有找到處理該異常的代碼塊,就會調用異常對象的printStackTrace()方法,打印出異常信息,接着如果該線程不是主線程,終止該線程,其他線程繼續正常執行,反之,整個程序被終止。

             (2)機制:try...catch、finally、throw、throws。

         三 常見的異常類

              

             (1)IOException:操作輸入流和輸出流可能出現的異常;

             (2)ArithmeticException:數學異常。如果把整數除以0,就會出現這種異常。

             (3)NullPointerException:空指針異常。當引用變量爲null時試圖訪問對象的屬性或方法,就會出現這種異常。

             (4)IndexOutBoundsException:下標越界異常。它的子類ArrayIndexOutOfBoundsException表示數組下標越界異常。

             (5)ClassCastException:類型轉換異常。

             (6)IllegalArgumentException:非法參數異常。可用來檢查方法的參數時候合法。

         四 推薦網址

                更加詳細的知識,大家請點擊後面的鏈接:點擊此鏈接。

總結:

                Java的異常處理機制很強大,不過也不能每個方法都用,開發人員可以憑藉經驗以及實踐,在適當的方法裏面加入適當的異常處理,增強我們軟件的健壯性。

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