Java – 常見的例外狀況

Java物件導向程式設計與SCJP認證明解

這一本書是這陣子在看的,作者很貼心的準備了SCJP總複習擬真試題給我們免費下載,真好!

我看到12-3-2 常見的例外狀況,有關於編譯器不會檢核的RuntimeException的子孫類別有:

NullPointerException
IllegalArgumentException
NumberFormatException
ClassCastException
ArrayIndexOutOfBound:使用索引值存取陣列元素時,索引值超出陣列範圍。
NegativeArraySizeException
ClassCastException
SecurityException
ArithmeticException

應檢核例外:

java.text.ParseException
java.io.FileNotFoundException
java.io.IOException
java.sql.SQLException
java.lang.InterruptedException:使用索引值存取陣列元素時,索引值超出陣列範圍。
java.lang.ClassNotFoundException

有沒有看到ArrayIndexOutOfBound跟java.lang.InterruptedException這兩個解釋一模一樣?怎會這樣?對初學者來說不知道能不能分辨出來,還好ㄚ琪看了很多本SCJP了,所以一會兒就看到這個錯誤了,可能是作者那時在顧小孩的時候,貼錯了吧!

java.lang.InterruptedException主要是執行緒非執行中而嘗試中斷所引發的例外處理,在執行緒那章會常常看到,原文手冊是這樣寫:

『Thrown when a thread is waiting, sleeping, or otherwise occupied, and the thread is interrupted, either before or during the activity. Occasionally a method may wish to test whether the current thread has been interrupted, and if so, to immediately throw this exception. The following code can be used to achieve this effect:

  if (Thread.interrupted())  // Clears interrupted status!
      throw new InterruptedException();

希望大家可以注意到,不會搞錯!

感謝你看到這裡,很快就可以離開了,但最好的獎勵行動就是按一下幫我分享或留言,感恩喔~

點我分享到Facebook

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *