紅色爲檢查異常,就是eclipse要提示你是try catch 仍是throws。html
非檢查異常,就是/0,nullpointexception,數據越界訪問indexOfOutBounds 異常java
錯誤: 最多見的oom錯誤,還有classnotFoundeError,StackOverflowError :程序員
java異常處理面試題概括web
一、error和exception有什麼區別面試
error表示系統級的錯誤,是java運行環境內部錯誤或者硬件問題,不能期望程序來處理這樣的問題,除了退出運行外別無選擇,它是Java虛擬機拋出的。多線程
exception 表示程序須要捕捉、須要處理的異常,是由與程序設計的不完善而出現的問題,程序必須處理的問題eclipse
二、運行時異常和通常異常有何不一樣函數
Java提供了兩類主要的異常:runtimeException和checkedException 測試
通常異常(checkedException)主要是指IO異常、SQL異常等。對於這種異常,JVM要求咱們必須對其進行cathc處理,因此,面對這種異常,無論咱們是否願線程
意,都是要寫一大堆的catch塊去處理可能出現的異常。
運行時異常(runtimeException)咱們通常不處理,當出現這類異常的時候程序會由虛擬機接管。好比,咱們歷來沒有去處理過NullPointerException,並且
這個異常仍是最多見的異常之一。
出現運行時異常的時候,程序會將異常一直向上拋,一直拋到遇處處理代碼,若是沒有catch塊進行處理,到了最上層,若是是多線程就有Thread.run()拋出,如
果不是多線程那麼就由main.run()拋出。拋出以後,若是是線程,那麼該線程也就終止了,若是是主程序,那麼該程序也就終止了。
其實運行時異常的也是繼承自Exception,也能夠用catch塊對其處理,只是咱們通常不處理罷了,也就是說,若是不對運行時異常進行catch處理,那麼結果不
是線程退出就是主程序終止。
若是不想終止,那麼咱們就必須捕獲全部可能出現的運行時異常。若是程序中出現了異常數據,可是它不影響下面的程序執行,那麼咱們就該在catch塊裏面將異
常數據捨棄,而後記錄日誌。若是,它影響到了下面的程序運行,那麼仍是程序退出比較好些。
三、Java中異常處理機制的原理
Java經過面向對象的方式對異常進行處理,Java把異常按照不一樣的類型進行分類,並提供了良好的接口。在Java中,每一個異常都是一個對象,它都是Throwable
或其子類的實例。當一個方法出現異常後就會拋出一個異常對象,該對象中包含有異常信息,調用這個對象的方法能夠捕獲到這個異常並對異常進行處理。Java的
異常處理是經過5個關鍵詞來實現的:try catch throw throws finally。
通常狀況下是用try來執行一段程序,若是出現異常,系統會拋出(throws),咱們能夠經過它的類型來捕捉它,或最後由缺省處理器來處理它(finally)。
try:用來指定一塊預防全部異常的程序
catch:緊跟在try後面,用來捕獲異常
throw:用來明確的拋出一個異常
throws:用來標明一個成員函數可能拋出的各類異常
finally:確保一段代碼不管發生什麼異常都會被執行的一段代碼。
四、你平時在項目中是怎樣對異常進行處理的。
(1)儘可能避免出現runtimeException 。例如對於可能出現空指針的代碼,帶使用對象以前必定要判斷一下該對象是否爲空,必要的時候對runtimeException
也進行try catch處理。
(2)進行try catch處理的時候要在catch代碼塊中對異常信息進行記錄,經過調用異常類的相關方法獲取到異常的相關信息,返回到web端,不只要給用戶良好
的用戶體驗,也要能幫助程序員良好的定位異常出現的位置及緣由。例如,之前作的一個項目,程序遇到異常頁面會顯示一個圖片告訴用戶哪些操做致使程序出現
了什麼異常,同時圖片上有一個按鈕用來點擊展現異常的詳細信息給程序員看的。
五、final、finally、finalize的區別
(1)、final用於聲明變量、方法和類的,分別表示變量值不可變,方法不可覆蓋,類不能夠繼承
(2)、finally是異常處理中的一個關鍵字,表示finally{}裏面的代碼必定要執行
(3)、finalize是Object類的一個方法,在垃圾回收的時候會調用被回收對象的此方法。
六、try()裏面有一個return語句,那麼後面的finally{}裏面的code會不會被執行,何時執行,是在return前仍是return後?
本身寫了個代碼測試了一下:
顯示輸出結果爲1,記住就好了,不想去鑽這個問題的牛角尖,也沒有什麼大用處。
原文地址:http://www.cnblogs.com/gaoweixiao99/p/4905860.html