ERROR, Exception, RuntimeException

來源:互聯網
上載者:User

ERROR,一般由虛擬機器拋出,例如OOM、系統中的內部錯誤以及資源耗盡的情形。這種情形程式員不用拋,想拋也拋不了。。

Exception,是所有異常的大爺(父類),這裡我將他簡單的劃分為:RuntimeException和non-RuntimeException。(前者稱為unchecked異常,後者稱為checked異常)

RuntimeException體系,一般都是程式員的錯。例如,錯誤的類型轉換、數組越界訪問和試圖訪問null 指標等等。

  • 這種異常,不catch的話,eclipse不會報錯,異常會一直往上拋,直到線程停掉。用於調試,挺好的。
  • 當然也可以catch,進行些處理。無視自己已經釀成的錯誤,呵呵,這樣會不會有點鴕鳥了?
  • 程式員可以自己在代碼中,多加些判斷,檢查數組下標和數組邊界來避免數組越界訪問等。

non-RuntimeException體系

  • 這類異常,往往是外部因素引起的,非程式員本身錯誤。例如,試圖從檔案尾後讀取資料等
  • 要拋,且必須要在某層捕捉住。

RuntimeException與Error可以在任何代碼中產生,它們不需要由程式員顯示的拋出,一旦出現錯誤,那麼相應的異常會被自動拋出。遇到Error,程式員一般無能為力。遇到RuntimeException,那麼一定是程式存在邏輯錯誤,要對程式進行修改。

 

checked異常是由程式員拋出的,這分為兩種情況:程式員調用會拋出異常的庫函數(庫函數的異常由庫程式員拋出);客戶程式員自己使用throw語句拋出異常。只有已檢查異常才是程式員所關心的,程式應該且僅應該拋出或處理已檢查異常。

 

覆蓋父類某方法的子類方法不能拋出比父類方法更多的異常,所以,有時設計父類的方法時會聲明拋出異常,但實際的實現方法的代碼卻並不拋出異常,這樣做的目的就是為了方便子類方法覆蓋父類方法時可以拋出異常。

 

http://hi.baidu.com/ailongni/blog/item/ce75c734ec11cb1990ef3988.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.