java中容易出現(xiàn)的十大異常分析
【轉(zhuǎn)】JAVA常見十大異常
關(guān)鍵字: java異常
java 10大常見異常,出現(xiàn)的原因和解決方法
作為JAVA程序員,寫代碼難免出現(xiàn)bug,我們來看看java 10大常見異常
NO.1 java.lang.NullPointerException
這個異常大家肯定都經(jīng)常遇到,異常的解釋是 "程序遇上了空指針 ",簡單地說就是調(diào)用了未經(jīng)初始化的對象或者是不存在的對象,這個錯誤經(jīng)常出現(xiàn)在創(chuàng)建圖片,調(diào)用數(shù)組這些操作中,比如圖片未經(jīng)初始化,或者圖片創(chuàng)建時的路 徑錯誤等等。對數(shù)組操作中出現(xiàn)空指針,很多情況下是一些剛開始學(xué)習(xí)編程的朋友常犯的錯誤,即把數(shù)組的初始化和數(shù)組元素的初始化混淆起來了。數(shù)組的初始化是 對數(shù)組分配需要的空間,而初始化后的數(shù)組,其中的元素并沒有實例化,依然是空的,所以還需要對每個元素都進行初始化(如果要調(diào)用的話)
NO.2 java.lang.ClassNotFoundException
這個異常是很多原本在JB等開發(fā)環(huán)境中開發(fā)的程序員,把JB下的程序包放在WTk下編譯經(jīng)常出現(xiàn)的問題,異常的解釋是 "指定的類不存在 ",這里主要考慮一下類的名稱和路徑是否正確即可,如果是在JB下做的程序包,一般都是默認加上Package的,所以轉(zhuǎn)到WTK下后要注意把 Package的路徑加上。
NO.3 java.lang.ArithmeticException
這個異常的解釋是 "數(shù)學(xué)運算異常 ",比如程序中出現(xiàn)了除以零這樣的運算就會出這樣的異常,對這種異常,大家就要好好檢查一下自己程序中涉及到數(shù)學(xué)運算的地方,公式是不是有不妥了。
NO.4 java.lang.ArrayIndexOutOfBoundsException
這個異常相信很多朋友也經(jīng)常遇到過,異常的解釋是 "數(shù)組下標越界 ",現(xiàn)在程序中大多都有對數(shù)組的操作,因此在調(diào)用數(shù)組的時候一定要認真檢查,看自己調(diào)用的下標是不是超出了數(shù)組的范圍,一般來說,顯示(即直接用常數(shù)當下 標)調(diào)用不太容易出這樣的錯,但隱式(即用變量表示下標)調(diào)用就經(jīng)常出錯了,還有一種情況,是程序中定義的數(shù)組的長度是通過某些特定方法決定的,不是事先 聲明的,這個時候,最好先查看一下數(shù)組的length,以免出現(xiàn)這個異常。
NO.5 java.lang.IllegalArgumentException
這個異常的解釋是 "方法的參數(shù)錯誤 ",很多J2ME的類庫中的方法在一些情況下都會引發(fā)這樣的錯誤,比如音量調(diào)節(jié)方法中的音量參數(shù)如果寫成負數(shù)就會出現(xiàn)這個異常,再比如 g.setColor(int red,int green,int blue)這個方法中的三個值,如果有超過255的也會出現(xiàn)這個異常,因此一旦發(fā)現(xiàn)這個異常,我們要做的,就是趕緊去檢查一下方法調(diào)用中的參數(shù)傳遞是不是 出現(xiàn)了錯誤。
NO.6 java.lang.IllegalAccessException
這個異常的解釋是 "沒有訪問權(quán)限 ",當應(yīng)用程序要調(diào)用一個類,但當前的方法即沒有對該類的訪問權(quán)限便會出現(xiàn)這個異常。對程序中用了Package的情況下要注意這個異常。
NO.7 java.lang.IncompatibleClassChangeError
不兼容的類變化錯誤。當正在執(zhí)行的方法所依賴的類定義發(fā)生了不兼容的改變時,拋出該異常。一般在修改了應(yīng)用中的某些類的聲明定義而沒有對整個應(yīng)用重新編譯而直接運行的情況下,容易引發(fā)該錯誤。
NO.8 java.lang.InstantiationError
實例化錯誤。當一個應(yīng)用試圖通過Java的new操作符構(gòu)造一個抽象類或者接口時拋出該異常.
NO.9 java.lang.LinkageError
鏈接錯誤。該錯誤及其所有子類指示某個類依賴于另外一些類,在該類編譯之后,被依賴的類改變了其類定義而沒有重新編譯所有的類,進而引發(fā)錯誤的情況。
NO.10 java.lang.StackOverflowError
堆棧溢出錯誤。當一個應(yīng)用遞歸調(diào)用的層次太深而導(dǎo)致堆棧溢出時拋出該錯誤。
作為JAVA程序員,寫代碼難免出現(xiàn)bug,我們來看看java 10大常見異常
NO.1 java.lang.NullPointerException
這個異常大家肯定都經(jīng)常遇到,異常的解釋是 "程序遇上了空指針 ",簡單地說就是調(diào)用了未經(jīng)初始化的對象或者是不存在的對象,這個錯誤經(jīng)常出現(xiàn)在創(chuàng)建圖片,調(diào)用數(shù)組這些操作中,比如圖片未經(jīng)初始化,或者圖片創(chuàng)建時的路 徑錯誤等等。對數(shù)組操作中出現(xiàn)空指針,很多情況下是一些剛開始學(xué)習(xí)編程的朋友常犯的錯誤,即把數(shù)組的初始化和數(shù)組元素的初始化混淆起來了。數(shù)組的初始化是 對數(shù)組分配需要的空間,而初始化后的數(shù)組,其中的元素并沒有實例化,依然是空的,所以還需要對每個元素都進行初始化(如果要調(diào)用的話)
NO.2 java.lang.ClassNotFoundException
這個異常是很多原本在JB等開發(fā)環(huán)境中開發(fā)的程序員,把JB下的程序包放在WTk下編譯經(jīng)常出現(xiàn)的問題,異常的解釋是 "指定的類不存在 ",這里主要考慮一下類的名稱和路徑是否正確即可,如果是在JB下做的程序包,一般都是默認加上Package的,所以轉(zhuǎn)到WTK下后要注意把 Package的路徑加上。
NO.3 java.lang.ArithmeticException
這個異常的解釋是 "數(shù)學(xué)運算異常 ",比如程序中出現(xiàn)了除以零這樣的運算就會出這樣的異常,對這種異常,大家就要好好檢查一下自己程序中涉及到數(shù)學(xué)運算的地方,公式是不是有不妥了。
NO.4 java.lang.ArrayIndexOutOfBoundsException
這個異常相信很多朋友也經(jīng)常遇到過,異常的解釋是 "數(shù)組下標越界 ",現(xiàn)在程序中大多都有對數(shù)組的操作,因此在調(diào)用數(shù)組的時候一定要認真檢查,看自己調(diào)用的下標是不是超出了數(shù)組的范圍,一般來說,顯示(即直接用常數(shù)當下 標)調(diào)用不太容易出這樣的錯,但隱式(即用變量表示下標)調(diào)用就經(jīng)常出錯了,還有一種情況,是程序中定義的數(shù)組的長度是通過某些特定方法決定的,不是事先 聲明的,這個時候,最好先查看一下數(shù)組的length,以免出現(xiàn)這個異常。
NO.5 java.lang.IllegalArgumentException
這個異常的解釋是 "方法的參數(shù)錯誤 ",很多J2ME的類庫中的方法在一些情況下都會引發(fā)這樣的錯誤,比如音量調(diào)節(jié)方法中的音量參數(shù)如果寫成負數(shù)就會出現(xiàn)這個異常,再比如 g.setColor(int red,int green,int blue)這個方法中的三個值,如果有超過255的也會出現(xiàn)這個異常,因此一旦發(fā)現(xiàn)這個異常,我們要做的,就是趕緊去檢查一下方法調(diào)用中的參數(shù)傳遞是不是 出現(xiàn)了錯誤。
NO.6 java.lang.IllegalAccessException
這個異常的解釋是 "沒有訪問權(quán)限 ",當應(yīng)用程序要調(diào)用一個類,但當前的方法即沒有對該類的訪問權(quán)限便會出現(xiàn)這個異常。對程序中用了Package的情況下要注意這個異常。
NO.7 java.lang.IncompatibleClassChangeError
不兼容的類變化錯誤。當正在執(zhí)行的方法所依賴的類定義發(fā)生了不兼容的改變時,拋出該異常。一般在修改了應(yīng)用中的某些類的聲明定義而沒有對整個應(yīng)用重新編譯而直接運行的情況下,容易引發(fā)該錯誤。
NO.8 java.lang.InstantiationError
實例化錯誤。當一個應(yīng)用試圖通過Java的new操作符構(gòu)造一個抽象類或者接口時拋出該異常.
NO.9 java.lang.LinkageError
鏈接錯誤。該錯誤及其所有子類指示某個類依賴于另外一些類,在該類編譯之后,被依賴的類改變了其類定義而沒有重新編譯所有的類,進而引發(fā)錯誤的情況。
NO.10 java.lang.StackOverflowError
堆棧溢出錯誤。當一個應(yīng)用遞歸調(diào)用的層次太深而導(dǎo)致堆棧溢出時拋出該錯誤。
posted on 2009-08-08 09:04 石頭@ 閱讀(367) 評論(0) 編輯 收藏 所屬分類: java_base