程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 避免C++空指針

避免C++空指針

編輯:C++入門知識

我想大家在開發當中遇到最多的報錯就是空指針了吧。

工作已經一段時間了,遇到了很多空指針的問題。

List list=dao.findById(id);
for(int i=0;i<list.size();i++){
   //do some thing
}

如果list=null的話,會出現null pointer exceptionjava指針數組的使用
原因不在於List list=null 而在於list.size()這句話,因為如果list為null的話,不可能有size方法,所以出現空指針的錯誤。
很多情況下,出現空指針的錯誤都是類似以上的情形,當然很多時候可能會出現在多層調用的時候。
所以一般需要對返回值做出處理

List list=dao.findById(id);
if(list==null){
   //一般情況下會在這裡做return處理,來避免以下的語句對null進行調用,發生空指針
   //當然也可以用if else語句來跳過可能出現空指針調用的語句
}
if(list!=null&&list.size()<1){
   //需要說明的是內容為空和null是不一樣的,內容為空不會報空指針
   //但顯然下面的for循環不會執行
}
for(int i=0;i<list.size();i++){
   //do some thing
}
另外對jsp頁面的空指針也是一樣的,因為jsp是被編譯成java class運行的。
比如下面代碼

<%
   String para=""
   List list=request.getAttribute("users");
  
   log.info(para.length());  //output 0
   //如果list為null,下面也會出現空指針
   for(Iterator i=list.iterator();i.hasNext();){
      //output  
   }
%>


 摘自:牆頭草的 blog

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved