Java異常處理機制依賴5個關鍵字try,catch,finally,throw,throws。try關鍵字後跟着可能出現異常的代碼塊,catch後面對應異常的類型和捕獲到異常後處理異常的代碼塊,finally後的代碼塊是程序必定會執行的,通常用於回收物理資源,throw用於拋出一個實際的異常,throws做爲方法的簽名,聲明一個方法可能會拋出的異常。數組
在一個項目中,最理想的狀態,就是項目沒有異常,從實際開發來講,就是在程序運行以前,就能檢測到全部的異常並處理,可是這是不現實的,由於開發者不可能預知所有錯誤。因此,從這個角度來講,Java異常機制將異常分爲兩大類,Runtime異常和Checked異常。Checked異常是指:Java認爲這類異常必須在編譯階段處理,若是這類異常不被處理,編譯失敗。處理方式主要有兩種:1.當前方法知道該如何處理異常,那就使用catch關鍵字捕獲異常,處理異常 2.當前方法不知道該如何處理異常,那就使用throws關鍵字拋出異常。Runtime異常是指:一些異常處理繁瑣,來源複雜,例如空指針、數組越界、除數爲0等異常,若是對這些異常進行捕獲,會致使程序變得複雜,運行效率下降,可讀性差。所以,由系統負責檢測這類異常。spa
通常來講,當程序出現異常時,無論是Runtime異常仍是Checked異常,系統自動生成一個異常對象,並提交給Java運行時環境,這個過程稱爲拋異常。當Java運行時環境收到異常對象時,會尋找能處理該異常的catch塊,若是找到了就由catch塊來處理,這個過程叫捕獲異常;若是找不到合適的catch塊,運行時環境就會終止,Java程序就此退出。指針