1. 程式人生 > 其它 >Error和Exception

Error和Exception

什麼是異常

  • 實際工作中,遇到的情況不可能是非常完美的。比如:你寫的某個模組,使用者輸入不一定符合你的要求、你的程式要開啟某個檔案,這個檔案可能不存在或者檔案格式不對,你要讀取資料庫的資料,資料可能是空的等。我們的程式在跑著,記憶體或硬碟可能滿了。等等。

  • 軟體程式在執行過程中,非常可能遇到剛剛提到的這些異常問題,我們叫異常,英文是:Exception,意思是例外。這些,例外情況,或者叫異常,怎麼讓我們寫的程式做出合理的處理。而不至於程式崩潰。

  • 異常指程式執行中出現的不期而至的各種情況,如:檔案找不到、網路連線失敗、非法引數等。

  • 異常發生在程式執行期間,它影響了正常的程式執行流程。

簡單分類

  • 要理解Java異常處理是如何工作的,你需要掌握以下三種類型的異常:

  • 異常處理框架

  • 檢查性異常:最具代表的檢查性異常是使用者錯誤或問題引起的異常,這是程式設計師無法預見的。例如要開啟一個不存在檔案時,一個異常就發生了,這些異常在編譯時不能被簡單地忽略。

  • 執行時異常:執行時異常可能被程式設計師避免的異常。與檢查性異常相反,執行時異常可以在編譯時被忽略。

  • 錯誤ERROR:錯誤不是異常,而是脫離程式設計師控制的問題。錯誤在程式碼中通常被忽略。例如,當棧溢位時,一個錯誤就發生了,它們在編譯中也檢查不到的。

異常體系結構

  • Java把異常當作物件來處理,並定義一個基類java.lang.Throwable作為所有異常的超類。

  • 在Java API中已經定義了許多異常類,這些異常類分為兩大類,錯誤Error和異常Exception

Error

  • Error類物件由Java虛擬機器生成並丟擲,大多數錯誤與程式碼編寫者所執行的操作無關

  • Java虛擬機器執行錯誤(Virtual MachError),當JVM不再有繼續執行操作所需的記憶體資源時,將出現OutOfMemoryError。這些異常發生時,Java虛擬機器(JVM)一般會選擇執行緒終止;

  • 還有發生在虛擬機器試圖執行應用時,如類定義錯誤(NoClassDefFoundError)、連結錯誤(LinkageError)。這些錯誤是不可查的,因為它們在應用程式的控制和處理能力之外,而且絕大多數是程式執行時不允許出現的狀況。

  

我的一生 第1章-廢物的一生 第50章-糟糕的嬰兒 第300章-莫欺少年窮 第600章-莫欺中年窮 第1000章-莫欺老年窮 第1100章-不詳的離去 第1101章-棺材板的震動 第1150章-盜墓賊的眼淚 第1200章-死者為大