java中一般異常和運行時異常的區別

來源:互聯網
上載者:User

      Java提供了兩類主要的異常:runtime exception和checked exception。checked

異常也就是我們經常遇到的IO異常,以及SQL異常都是這種異常。對於這種異常,

JAVA編譯器強制要求我們必需對出現的這些異常進行catch。所以,面對這種異常

不管我們是否願意,只能自己去寫一大堆catch塊去處理可能的異常。

      但是另外一種異常:runtime exception,也稱運行時異常,我們可以不處理

。當出現這樣的異常時,總是由虛擬機器接管。比如:我們從來沒有人去處理過

NullPointerException異常,它就是運行時異常,並且這種異常還是最常見的異

常之一。

      出現運行時異常後,系統會把異常一直往上層拋,一直遇到處理代碼。如果

沒有處理塊,到最上層,如果是多線程就由Thread.run()拋出,如果是單線程就

被main()拋出。拋出之後,如果是線程,這個線程也就退出了。如果是主程式拋

出的異常,那麼這整個程式也就退出了。運行時異常是Exception的子類,也有一

般異常的特點,是可以被Catch塊處理的。只不過往往我們不對他處理罷了。也就

是說,你如果不對運行時異常進行處理,那麼出現運行時異常之後,要麼是線程

中止,要麼是主程式終止。

      如果不想終止,則必須撲捉所有的運行時異常,決不讓這個處理線程退出。

隊列裡面出現異常資料了,正常的處理應該是把異常資料捨棄,然後記錄日誌。

不應該由於異常資料而影響下面對正常資料的處理。在這個情境這樣處理可能是

一個比較好的應用,但並不代表在所有的情境你都應該如此。如果在其它情境,

遇到了一些錯誤,如果退出程式比較好,這時你就可以不太理會運行時異常,或

者是通過對異常的處理顯式的控製程序退出。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.