java異常的概念 執行期的錯誤(javac xxx.java) 運行期的錯誤(java xxx) 這裡講的是運行期出現的錯誤 上面這段代碼的輸出結果是3 為啥12沒列印出來呢?System.out.println(arr[4])這段帶代碼想獲取數組中的第五個元素但是沒有所以報錯了直接執行了catc ...
java異常的概念
執行期的錯誤(javac xxx.java)
運行期的錯誤(java xxx)
這裡講的是運行期出現的錯誤
class TestEx { public static void main(String[] args) { try{ int[] arr={1,2,3}; System.out.print(1); System.out.println(arr[4]); System.out.print(2); } catch(ArrayIndexOutOfBoundsException ae){ System.out.print(3); ae.printStackTrace(); } } }
上面這段代碼的輸出結果是3
為啥12沒列印出來呢?System.out.println(arr[4])這段帶代碼想獲取數組中的第五個元素但是沒有所以報錯了直接執行了catch中的代碼塊。也就是說一旦出錯try中的代碼就不會執行而是會執行接收這個錯誤的catch代碼塊中的代碼。
catch(ArrayIndexOutOfBoundsException ae)
這段代碼可以理解為聲明一個ArrayIndexOutOfBoundsException類型的ae變數作為catch方法的形參
在出錯時java解釋器會調用catch方法並且new出一個新的ArrayIndexOutOfBoundsException類型的實例然後傳給ae