多層for迴圈中空指標問題排查和思考

2021-09-24 01:40:02 字數 776 閱讀 7503

首先說下問題出現的背景,最近重構公司老專案

老專案:spring+hibernate+dubbo+ehcache+mysql

新專案:springboot+mybatis+dubbo+redis+mysql

該專案完全是向外提供dubbo服務,因為沒有頁面,通過telnet測試dubbo介面;

測試介面的時候,發現空指標問題,指向乙個三目運算子,肉眼看半天沒有找到問題,於是catch異常順便列印最可能出問題的資料

發現在355次的迴圈有問題,debug設定停頓到355次

仔細觀察當前資料發現 map—>itemrole大小5  卻去獲取 key—>classid 82的資料存在問題

至此找到問題所在

問題延伸,在三目運算子中如果存在可能為空的變數的在判斷時要各位小心!!!比較容易忽略的地方

另外該問題其實很簡單,idea設定再短點處停留,直接檢視每個變數的資料,每個表示式的值就可以發現,idea的debug功能點需要仔細研究

bat迴圈中變數自增問題

在迴圈中變數自增後,因為批處理執行命令的機制,直到迴圈結束該變數值才能正確列印顯示出來。例子1 echo off set a a 2 for l c in 1 1 10 do set a a 1 echo a echo a pause 結果 迴圈中一直是2,結束後是12 使用setlocal ena...

for 迴圈中的 i 變數取值問題

1 如何點選某乙個 li 的時候 alert 輸出其index?window.onload function 解析 因為在for迴圈裡面指定給olis i onclick的事件處理程式,也就是onclick那個匿名函式是在for迴圈執行完成後 使用者點選時 才被呼叫的。而呼叫時,需要對變數i求值,解...

shell迴圈中變數的作用域問題

最近實現了乙個shell指令碼,功能簡單來說就是從檔案中按行讀取然後將所有行拼接成一行寫入乙個檔案,關鍵 如下 path all cat 1 while read line doif path all then path all line else path all path all,line fi...