android異常處理概述

而Java提供了一套比較優秀的異常處理機制: 
    1、使開發人員不必編寫特殊代碼來測試返回值就能發現問題, 
    2、在語法結構就把正常的代碼和異常處理的代碼清晰的分開來, 
    3、允許我們使用相同的異常處理代碼來處理一定範圍內的所有異常。 
以期產生一種高效的、有組織的異常處理方式。



異常分爲三大類:

1.運行時異常:RuntimeException

2.檢查時異常:try{}catch{}finally{}

3.錯誤:Error

這三個都是Thrawable的子類,實現了Serializable接口。

運行時異常:這類錯誤時因爲程序的算法問題有些bug沒有調試完畢。

檢查時異常:這類異常編譯器會提示需要進行try catch,如果沒有的話,就會編譯不通過

錯誤:此類異常是由於系統的問題,比如說內存耗盡。



異常處理的幾條規則:
try用於定義可能發生異常的代碼段,這個代碼塊被稱爲監視區域,所有可能出現檢驗異常的代碼寫在這裏。
catch代碼段緊跟在try代碼段後面,中間不能有任何其他代碼。
try後面可以沒catch代碼段,這實際上是放棄了捕捉異常,把異常捕捉的任務交給調用棧的上一層代碼。
try後面可以有一個或者多個catch代碼段,如果有多個catch代碼段那麼程序只會進入其中某一個catch。
catch捕捉的多個異常之間有繼承關係的話,要先捕捉子類後捕捉父類。
finally代碼段可以要也可以不要。
如果try代碼段沒有產生異常,那麼finally代碼段會被立即執行,如果產生了異常,那麼finally代碼段會在catch代碼段執行完成後立即執行。
可以只有try和finally沒有catch。



常見異常
ArrayIndexOfBoundsException數組下標越界異常
ClassCastException 強制轉換類失敗異常
IllegalArgumentException 方法參數類型傳入異常
IllegalStateException 非法的設備狀態異常
NullPointException 傳說中的空指針異常,如果一個對象不存在,你有對這個對象使用點操作,那麼就會出現該異常
NumberFormatException 把字符串轉成數字失敗時出現的數字格式異常
AssertionError 斷言錯誤
ExceptionInInitializerError 試圖初始化靜態變量或者靜態初始化塊時拋出
StackOverflowError 棧溢出錯誤
NoClassDefFoundError 找不到指定的類錯誤

發佈了39 篇原創文章 · 獲贊 46 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章