RuntimeException与CheckedException
RuntimeException與CheckedException
?
Java的異常被分為兩大類:Checked異常和Runtime異常(運行時異常)。所有RuntimeException類及其子類實例被稱為Runtime異常;不是RuntimeException類及其子類的異常實例則稱為Checked異常。
?
只有Java語言提供了Checked異常,其他語言都沒有提供Checked異常。Java認為Checked異常都是可以被處理(修復)的異常,所以Java程序必須顯式處理Checked異常。
?????? 對于Checked異常的處理方式有兩種:
(1)當前方法明確知道如何處理該異常,程序應該使用try...catch塊來捕獲該異常,然后對應的catch塊中修補該異常。
(2)當前方法不知道如何處理這種異常,應該在定義該方法時聲明拋出該異常。
?????? Runtime異常則更加靈活,Runtime異常無須顯式聲明拋出,如果程序需要捕捉Runtime異常,也可以使用try...catch塊來捕捉Runtime異常。
?
?當使用throw語句自行拋出異常,如果throw語句拋出的異常是Checked異常,則該throw語句要么處于try塊里,顯式捕獲該異常,要么放在一個帶throws聲明的方法中,即把該異常交給該方法的調用者處理;也就是說當出現了(不管是自行拋出的,還是系統拋出的)Checked異常,就要想辦法去處理它,不能不理會它,要么顯式地在try...catch塊里捕獲,處理它;要么把它放在一個帶throws聲明的方法中,把異常交給該方法的調用者處理。
?????? 如果throw語句拋出的異常是Runtime異常,則該語句無須放在try塊里,也無須放在帶throws聲明拋出的方法中;程序既可以顯式使用try...catch來捕獲,并處理異常,也可以完全不處理該異常,把異常交給該方法調用者處理。(http://blog.163.com/quanquan127@126/blog/static/6884772520126394334182/)
?
ArithmeticException(除數為0的異常), BufferOverflowException(緩沖區上溢異常), BufferUnderflowException(緩沖區下溢異常), IndexOutOfBoundsException(出界異常), NullPointerException(空指針異常), EmptyStackException(空棧異常), IllegalArgumentException(不合法的參數異常), NegativeArraySizeException, NoSuchElementException, SecurityException, SystemException, UndeclaredThrowableException
1. java.lang.NullPointerException
異常的解釋是"程序遇上了空指針",簡單地說就是調用了未經初始化的對象或者是不存在的對象,即把數組的初始化和數組元素的初始化混淆起來了。數組的初始化是對數組分配需要的空間,而初始化后的數組,其中的元素并沒有實例化,依然是空的,所以還需要對每個元素都進行初始化(如果要調用的話)
2. java.lang.ClassNotFoundException 異常的解釋是"指定的類不存在"。
3. java.lang.ArithmeticException 這個異常的解釋是"數學運算異常",比如程序中出現了除以零這樣的運算就會出這樣的異常。
4. java.lang.ArrayIndexOutOfBoundsException
異常的解釋是"數組下標越界",現在程序中大多都有對數組的操作,因此在調用數組的時候一定要認真檢查,看自己調用的下標是不是超出了數組的范圍,一般來說,顯示(即直接用常數當下標)調用不太容易出這樣的錯,但隱式(即用變量表示下標)調用就經常出錯了,還有一種情況,是程序中定義的數組的長度是通過某些特定方法決定的,不是事先聲明的,這個時候,最好先查看一下數組的length,以免出現這個異常。
5. java.lang.IllegalArgumentException
這個異常的解釋是"方法的參數錯誤",比如g.setColor(int red,int green,int blue)這個方法中的三個值,如果有超過255的也會出現這個異常,因此一旦發現這個異常,我們要做的,就是趕緊去檢查一下方法調用中的參數傳遞是不是出現了錯誤。
6. java.lang.IllegalAccessException
這個異常的解釋是"沒有訪問權限",當應用程序要調用一個類,但當前的方法即沒有對該類的訪問權限便會出現這個異常。對程序中用了Package的情況下要注意這個異常(http://www.cnblogs.com/qinqinmeiren/archive/2010/10/14/2151702.html)
轉載于:https://www.cnblogs.com/HiJacky/p/5743966.html
總結
以上是生活随笔為你收集整理的RuntimeException与CheckedException的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android 动画机制与使用技巧
- 下一篇: 发前端项目