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 虛擬機來調用
的