1.finally塊中的代碼是什麼時候被執行?
finally塊的作用就是爲保證無論出現什麼情況,finally塊裏的代碼一定會被執行,finally執行也在return之前。如果try-finally,catch-finally中都有return,那麼finally中的return將會覆蓋別處的return語句。對於基本數據類型,finally改變return的值對返回值沒有什麼任何影響,而對引用類型由影響。
2.異常處理的原理是什麼
異常是指程序運行時(非編譯時)所發生的非正常情況或錯誤,JVM就會將出現的錯位表示爲一個異常並拋出。這個異常可以在catch程序塊中進行捕獲,然後進行處理。
Throwable(父類)-------Error
|------------Exception
3.運行時異常和普通異常的區別
檢查異常 | 運行時異常 |
---|---|
編譯階段 | 運行階段 |
強制 | 非強制 |
不會導致程序出錯,進行處理後可以繼續執行後續操作 | 線程中止 |
IO異常 | NullPointerException |