1. 程式人生 > >關於Java空指標異常的幾種情況的總結(java.lang.NullPointerException)

關於Java空指標異常的幾種情況的總結(java.lang.NullPointerException)

在外文網站上看到的:

1. Calling the instance method of a null object. 
2. Accessing or modifying the field of a null object. 
3. Taking the length of null as if it were an array. 
4. Accessing or modifying the slots of null as if it were an array. 
5. Throwing null as if it were a Throwable value. 

-------------------------

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確是一種不錯的選擇。 

相關推薦

no