【J2SE】——異常理論篇

         異常的定義


         在《java編程思想》中這樣定義異常:阻止當前方法或作用域執行的問題。也可以這樣說,異常就是某種意義

上的錯誤,就是問題,它可能會導致程序失敗。

      

        異常的分類

      

        1、Throwable:它是java語言中所有錯誤或異常的超類。它有兩個子類:Error和Exception。

        2、Error:用於指示合理的應用程序不應該試圖捕獲的嚴重問題。這種情況是很大的問題,大到不能處理了,

所以聽之任之就行了,不用管它。例如:VirtualMachineError,當java虛擬機崩潰或用盡了它繼續操作所需的資源

時,拋出該錯誤。就算這個錯誤存在,也不用處理,直接交給JVM吧,沒有比它更專業的了。

        3、Exception:他指出了合理的應用程序想要捕獲的條件。Exception又分爲兩類:CheckedException和

UncheckedException(通常也叫RuntimeException)。二者的主要區別是:CheckedException需要用try...catch...

顯示捕獲,而UncheckedException不需要捕獲。


        捕獲異常


            1、try是嘗試運程代碼塊,如果有異常會被隨後的catch捕獲,異常發生以後代碼不執行。

       2、catch代碼塊是異常處理代碼,需要提供合理的處理。

             1)異常的處理與具體的業務邏輯有關

             2)可以寫多個catch處理一系列異常,但是要注意:異常的大小關係,大類型的放到後面處理。

       3、有的時候直接catch(Exception)粗粒度處理異常,代碼簡潔,語義含糊,根據業務邏輯適當選用。

       4、finally代碼塊,不管是否出現異常,總會執行的代碼塊。

            1)finally常用來處理現場的清理。

       5、處理異常基本原則:能夠底層處理的儘量底層處理,但是如果不能處理,必須拋出到調用者。不應該簡單

的拋棄。

      6、異常捕獲再拋出,是一種把底層異常進行封裝,轉換爲另外一種異常類型。

      7、建議在捕獲到異常時候使用e.printStackTrace(),打印到控制檯。

           1)輸出內容是:出現異常時候的方法調用堆棧。

           2)一般情況下,凡是捕獲異常代碼都輸出e.printStackTrace()。



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