一、
1. java.lang.nullpointerexception
這個異常大家肯定都經常遇到,異常的解釋是"程序遇上了空指針",簡單地說就是調用了未經初始化的對象或者是不存在的對象,這個錯誤經常出現在創建圖片,調用數組這些操作中,比如圖片未經初始化,或者圖片創建時的路徑錯誤等等。對數組操作中出現空指針,很多情況下是一些剛開始學習編程的朋友常犯的錯誤,即把數組的初始化和數組元素的初始化混淆起來了。數組的初始化是對數組分配需要的空間,而初始化后的數組,其中的元素並沒有實例化,依然是空的,所以還需要對每個元素都進行初始化(如果要調用的話)
2. java.lang.classnotfoundexception
這個異常是很多原本在jb等開發環境中開發的程序員,把jb下的程序包放在wtk下編譯經常出現的問題,異常的解釋是"指定的類不存在",這里主要考慮一下類的名稱和路徑是否正確即可,如果是在jb下做的程序包,一般都是默認加上package的,所以轉到wtk下后要注意把package的路徑加上。
3. java.lang.arithmeticexception
這個異常的解釋是"數學運算異常",比如程序中出現了除以零這樣的運算就會出這樣的異常,對這種異常,大家就要好好檢查一下自己程序中涉及到數學運算的地方,公式是不是有不妥了。
4. java.lang.arrayindexoutofboundsexception
這個異常相信很多朋友也經常遇到過,異常的解釋是"數組下標越界",現在程序中大多都有對數組的操作,因此在調用數組的時候一定要認真檢查,看自己調用的下標是不是超出了數組的范圍,一般來說,顯示(即直接用常數當下標)調用不太容易出這樣的錯,但隱式(即用變量表示下標)調用就經常出錯了,還有一種情況,是程序中定義的數組的長度是通過某些特定方法決定的,不是事先聲明的,這個時候,最好先查看一下數組的length,以免出現這個異常。
5. java.lang.illegalargumentexception
這個異常的解釋是"方法的參數錯誤",很多j2me的類庫中的方法在一些情況下都會引發這樣的錯誤,比如音量調節方法中的音量參數如果寫成負數就會出現這個異常,再比如g.setcolor(int red,int green,int blue)這個方法中的三個值,如果有超過255的也會出現這個異常,因此一旦發現這個異常,我們要做的,就是趕緊去檢查一下方法調用中的參數傳遞是不是出現了錯誤等等;
二、
1.空指針異常(java.lang.nullpointerexception)
發生該情況一般是字符串變量未初始化,數組未初始化,類對象未初始化等。還有一種情況是當該對象為空時你並沒有判斷是否為空值,這個錯誤我在之前的web習題上犯過,因此為了避免這種情況,除了檢查是否初始化之外,如有必要則要加上判斷是否為null的if語句。
2.指定的類不存在(java.lang.ClassNotFoundException)
出現這個錯誤的原因之一是缺包,這時只要下載並導入相應的包即可;當我們已經把包導入的時候,又報了這種錯誤的情況下,就需要開啟自己的編輯器去調整設置了;在使用tomcat的時候,先檢查lib中是否導入了jar。
3.字符串轉換為數字異常(java.lang.NumberFormatException)
這個錯誤就是字符串中出現非數字型字符時,轉換為數字時發生異常;除此之外,如果字符串轉換為數字時超過了類型的范圍(比如string轉int和string轉double),也會出現這個錯誤。解決該問題的方法就是在轉換之前先對字符串進行檢查。
4.數組下標越界異常(java.lang.IndexOutOfBoundsException)
顧名思義,你想取的數組元素在數組中並沒有定義出來,比如定義了一個長度為5的數組a,當你想取a[6]元素時肯定會出錯。解決這類問題就是要注意數組的長度,有時候為了減少空間浪費我們會使用動態數組構建方法,這時在對數組進行操作時建議先用length獲取其數組長度,從而規避錯誤。
5.數學運算異常(java.lang.ArithmeticException)
除數為0時會報出該錯誤,解決方法:避免除數為0。這個錯誤解讀為“出現異常的運算條件”,除了除數為0的情況之外,可能還有其他的異常情況,屆時具體情況具體分析。
6.沒有訪問權限(java.lang.IllegalAccessException)
權限問題,在程序訪問某方法時注意一下訪問權限即可(public/private),這種錯誤在使用package時容易發生。
7.方法的參數錯誤(java.lang.IllegalArgumentException)
在調用帶有參數的方法時,請注意傳遞的參數是否正確。
8.數據類型轉換異常(java.lang.ClassCastException)
在進行強制類型轉換時容易發生該錯誤,在進行轉換前先對類型進行判別,規避錯誤。
9.文件未找到異常(java.lang.FileNotFoundException)
當程序試圖打開一個不存在的文件進行讀寫操作時會報出該錯誤,通常由FileInputStream,FileOutputStream,RandomAccessFile的構造器聲明發出,即使文件存在,但因某個原因無法訪問,也會報出該錯誤。
10.數組存儲異常(java.lang.ArrayStoreException)
假如在int型數組里存入string類型的變量,就會報錯,解決方案是在存入對象時查明類型,或者在存入前先進行類型轉換。
11.方法不存在異常(java.lang.NoSuchMethodException)
程序所要調用的方法不存在。解決方法:不調用或者構造其方法。
12.文件已結束異常(java.lang.EOFException)
程序輸入過程中遇到文件或流的結尾引發該異常,此異常用於檢查是否達到文件或流結尾。
13.實例化異常(java.lang.InstantiationException)
類創建新對象時無法通過構造器進行實例化引發的異常。解決方案:構造方法。
14.被中止異常(java.lang.InterruptedException)
通過其他線程的Thread的interrupt方法中止另一個線程時報出的錯誤。解決方法:一,不做處理,直接拋出;二,捕獲異常,再次調用interrupt方法,將中斷狀態重新設置為true。
15.不支持克隆異常(java.lang.CloneNotSupportedException)
如果沒有實現Cloneable接口便調用了clone方法,報出該錯誤;若類不支持Cloneable接口,調用時也會出現該錯誤。解決方法:實現Cloneable接口。
16.輸入輸出異常(IOException)
該異常為Exception的一個分支,通常發生在文件的數據讀寫上。
17.錯誤(java.lang.Error)
所有錯誤的基類,用於標識嚴重的程序運行問題。通常原因是訪問外部資源時出現一系列問題,解決方案也需要圍繞訪問外部資源這一重點展開。
以上是將通過網絡途徑查到到的異常和自己平常遇到的問題做出了一個總結!