JAVA 異常 簡單問題

JAVA語言如何進行異常處理?

答: Java通過面向對象的方法進行異常處理,把各種不同的異常進行分類,並提供了良好的接口。在Java中,每個異常都是一個對象,它是Throwable類或其它子類的實例。當一個方法出現異常後便拋出一個異常對象,該對象中包含有異常信息,調用這個對象的方法可以捕獲到這個異常並進行處理。

 

關鍵字: throws,throw,try,catch,finally分別代表什麼意義?

 Java的異常處理是通過5個關鍵詞來實現的: try、 catch、 throw、 throws和finally。一般情況下是用try來執行一段程序,如果出現異常,系統會拋出(throws)一個異常,這時候你可以通過它的類型來捕捉(catch)它,或最後(finally)由缺省處理器來處理。

用try來指定一塊預防所有"異常"的程序。緊跟在try程序後面,應包含一個catch子句來指定你想要捕捉的"異常"的類型。

throw語句用來明確地拋出一個"異常"。

throws用來標明一個成員函數可能拋出的各種"異常"。

Finally爲確保一段代碼不管發生什麼"異常"都被執行一段代碼。

 

在try塊中可以拋出異常嗎?

可以在一個成員函數調用的外面寫一個try語句,在這個成員函數內部寫另一個try語句保護其他代碼。每當遇到一個try語句, "異常"的框架就放到堆棧上面,直到所有的try語句都完成。如果下一級的try語句沒有對某種"異常"進行處理,堆棧就會展開,直到遇到有處理這種"異常"的try語句。

 

 

運行時異常與一般異常有何異同

答: 異常表示程序運行過程中可能出現的非正常狀態,運行時異常表示虛擬機的通常操作中可能遇到的異常,是一種常

見運行錯誤。 java編譯器要求方法必須聲明拋出可能發生的非運行時異常,但是並不要求必須聲明拋出未被捕獲的運行

時異常。

 

error和exception有什麼區別

答: error 表示恢復不是不可能但很困難的情況下的一種嚴重問題。比如說內存溢出。不可能指望程序能處理這樣的情

 

 

最常見到的runtime exception

答: 常見的運行時異常有如下這些

ArithmeticException,

IllegalArgumentException

NullPointerException,

SystemException,

 

try {}裏有一個return語句,那麼緊跟在這個try後的finally{}裏的code會執行嗎?

try {}裏有一個return語句,那麼緊跟在這個try後的finally{}裏的code會執行,在return前執行(準確的說是return執行過,但是return的值保留,不管finally怎麼改變,依舊返回該值)

PS:Finally裏面如果也有return,會將try,catch裏面的return覆蓋掉導致程序提前退出

 

 

異常處理完成以後,Exception 對象會發生什麼變化?

Exception 對象會在下一個垃圾回收過程中被回收掉。

 

 

finally 代碼塊和 finalize()方法有什麼區別?

無論是否拋出異常,finally 代碼塊都會執行,它主要是用來釋放應用佔用的資源。

finalize()方法是 Object 類的一個 protected 方法,它是在對象被垃圾回收之前由 Java 虛擬機來調用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章