關於Java空指標異常的幾種情況的總結
阿新 • • 發佈:2018-12-07
1:NullPointerException由RuntimeException派生出來,是一個執行級別的異常。意思是說可能會在執行的時候才會被丟擲,而且需要看這樣的執行級別異常是否會導致你的業務邏輯中斷。
2:空指標異常發生在物件為空,但是引用這個物件的方法。例如: String s = null; //物件s為空(null) int length = s.length();//發生空指標異常
3:一個變數是null,及只有其名,沒有實值內容,也沒分配記憶體,當你要去取他的長度,對他進行操作就會出現NullPointException,所以生命一個變數時最好給它分配好記憶體空間,給予賦值。
4:比如變數為空,而你沒有去判斷,就直接使用,就會出現NullPointException。寫程式時嚴謹些,儘量避免了,例如在拿該變數與一個值比較時,要麼先做好該異常的處理如: if (str == null) { System.out.println("字元為空!"); } 當然也可以將這個值寫在前面進行比較的,例如,判斷一個String的例項s是否等於“a”,不要寫成s.equals("a"),這樣寫容易丟擲NullPointerException,而寫成"a".equals(s)就可以避免這個問題。不過對變數先進行判空後再進行操作比較好
5:儘量避免返回null,方法的返回值不要定義成為一般的型別,而是用陣列。這樣如果想要返回null的時候,就返回一個沒有元素的陣列。就能避免許多不必要的NullPointerException,使用NullObject返回代替返回null確是一種不錯的選擇。