2013-10-11 51 views
0

我在我的java類中有以下代碼。如何處理空指針異常?

/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 
package webservice; 

import java.util.Iterator; 
import java.util.List; 


public class Webservice { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     // TODO code application logic here 
     ArrayOfString aar = new ArrayOfString(); 
     aar.getString().add("1025976002"); 
     aar.getString().add("1026020904"); 
     aar.getString().add("1026020704"); 
     aar.getString().add("1026026201"); 
     aar.getString().add("1026036901"); 
     aar.getString().add(""); 
     ArrayOfStatusContainer status = getStatusList(aar); 
     List<StatusContainer> li = status.getStatusContainer(); 
     Iterator litr=li.listIterator();  
     // System.out.println("Elements in forward directiton"); 
     while(litr.hasNext()){ 
      StatusContainer test = (StatusContainer)litr.next(); 
      System.out.println(test.getStatus());  
     } 

    } 

    private static ArrayOfStatusContainer getStatusList(webservice.ArrayOfString keys) { 
     webservice.AdStatusWS service = new webservice.AdStatusWS(); 
     webservice.AdStatusWSSoap port = service.getAdStatusWSSoap(); 
     return port.getStatusList(keys); 

    } 
} 

當我輸入一個空字符串或輸入重複的字符串值時,我得到一個空指針異常。我一直在嘗試,但到目前爲止我還沒有找到解決辦法。我附上了下面例外的屏幕截圖。堆棧跟蹤如下:

Sent 
Booked 
Multiple Errors 
Exception in thread "main" java.lang.NullPointerException 
In QC 
Need correction client 
    at webservice.Webservice.main(Webservice.java:34) 
Java Result: 1 
BUILD SUCCESSFUL (total time: 1 second) 

enter image description here

+2

使用調試器,遍歷你的代碼,確定'null'引用來自哪裏,如果它是無效的,則更正它。 –

+0

堆棧跟蹤請?圖像不清楚。 –

+2

這是什麼,爲螞蟻調試? – nhgrif

回答

3

控制檯說,空指針異常是投行34,什麼是可能的手段來測試變量爲空和你試圖訪問一個對象的屬性null首先驗證null。

while(litr.hasNext()){ 
     StatusContainer test = (StatusContainer)litr.next(); 
     if(test != null) 
      System.out.println(test.getStatus());  
    } 
0

確保您在訪問對象中的屬性前總是添加空檢查。

+0

肯定薩欽。請牢記這一點。 – Newbee