Java開發(fā)中常見(jiàn)的異常問(wèn)題
作為一名開發(fā)者,Java程序員,很自然必須熟悉對(duì)程序的調(diào)試方法。而要調(diào)試程序,自然需要對(duì)程序中的常見(jiàn)的異常有一定的了解,這些日子很多朋友都提出了很多問(wèn)題,都是關(guān)于游戲中的報(bào)錯(cuò),因此在這里我將一些常見(jiàn)的程序中的異常列舉出來(lái)給大家參考:
1. java.lang.NullPointerException
這個(gè)異常大家肯定都經(jīng)常遇到,異常的解釋是"程序遇上了空指針",簡(jiǎn)單地說(shuō)就是調(diào)用了未經(jīng)初始化的對(duì)象或者是不存在的對(duì)象,這個(gè)錯(cuò)誤經(jīng)常出現(xiàn)在創(chuàng)建圖片,調(diào)用數(shù)組這些操作中,比如圖片未經(jīng)初始化,或者圖片創(chuàng)建時(shí)的路徑錯(cuò)誤等等。對(duì)數(shù)組操作中出現(xiàn)空指針,很多情況下是一些剛開始學(xué)習(xí)編程的朋友常犯的錯(cuò)誤,即把數(shù)組的初始化和數(shù)組元素的初始化混淆起來(lái)了。數(shù)組的初始化是對(duì)數(shù)組分配需要的空間,而初始化后的數(shù)組,其中的元素并沒(méi)有實(shí)例化,依然是空的,所以還需要對(duì)每個(gè)元素都進(jìn)行初始化(如果要調(diào)用的話)
2. java.lang.ClassNotFoundException
這個(gè)Java異常是很多原本在JB等開發(fā)環(huán)境中開發(fā)的程序員,把JB下的程序包放在WTk下編譯經(jīng)常出現(xiàn)的問(wèn)題,異常的解釋是"指定的類不存在",這里主要考慮一下類的名稱和路徑是否正確即可,如果是在JB下做的程序包,一般都是默認(rèn)加上Package的,所以轉(zhuǎn)到WTK下后要注意把Package的路徑加上。
3. java.lang.ArithmeticException
這個(gè)異常的解釋是"數(shù)學(xué)運(yùn)算異常",比如程序中出現(xiàn)了除以零這樣的運(yùn)算就會(huì)出這樣的異常,對(duì)這種異常,大家就要好好檢查一下自己程序中涉及到數(shù)學(xué)運(yùn)算的地方,公式是不是有不妥了。
4. java.lang.ArrayIndexOutOfBoundsException
這個(gè)異常相信很多朋友也經(jīng)常遇到過(guò),異常的解釋是"數(shù)組下標(biāo)越界",現(xiàn)在程序中大多都有對(duì)數(shù)組的操作,因此在調(diào)用數(shù)組的時(shí)候一定要認(rèn)真檢查,看自己調(diào)用的下標(biāo)是不是超出了數(shù)組的范圍,一般來(lái)說(shuō),顯示(即直接用常數(shù)當(dāng)下標(biāo))調(diào)用不太容易出這樣的錯(cuò),但隱式(即用變量表示下標(biāo))調(diào)用就經(jīng)常出錯(cuò)了,還有一種情況,是程序中定義的數(shù)組的長(zhǎng)度是通過(guò)某些特定方法決定的,不是事先聲明的,這個(gè)時(shí)候,最好先查看一下數(shù)組的length,以免出現(xiàn)這個(gè)異常。
5. java.lang.IllegalArgumentException
這個(gè)異常的解釋是"方法的參數(shù)錯(cuò)誤",很多Java的類庫(kù)中的方法在一些情況下都會(huì)引發(fā)這樣的錯(cuò)誤,比如音量調(diào)節(jié)方法中的音量參數(shù)如果寫成負(fù)數(shù)就會(huì)出現(xiàn)這個(gè)異常,再比如g.setColor(int red,int green,int blue)這個(gè)方法中的三個(gè)值,如果有超過(guò)255的也會(huì)出現(xiàn)這個(gè)異常,因此一旦發(fā)現(xiàn)這個(gè)異常,我們要做的,就是趕緊去檢查一下方法調(diào)用中的參數(shù)傳遞是不是出現(xiàn)了錯(cuò)誤。
6. java.lang.IllegalAccessException
這個(gè)異常的解釋是"沒(méi)有訪問(wèn)權(quán)限",當(dāng)應(yīng)用程序要調(diào)用一個(gè)類,但當(dāng)前的方法即沒(méi)有對(duì)該類的訪問(wèn)權(quán)限便會(huì)出現(xiàn)這個(gè)異常。對(duì)程序中用了Package的情況下要注意這個(gè)異常。
其他還有很多異常,我就不一一列舉了,我要說(shuō)明的是,一個(gè)合格的Java程序員,需要對(duì)程序中常見(jiàn)的問(wèn)題有相當(dāng)?shù)牧私夂拖鄳?yīng)的解決辦法,否則僅僅停留在寫程序而不會(huì)改程序的話,會(huì)極大影響到自己的開發(fā)的。關(guān)于異常的全部說(shuō)明,在API里都可以查閱。
【編輯推薦】