輕松搞定項目中的空指針異常Caused by: java.lang.NullPointerException: null


大家在項目測試過程中,是不是經常會碰到這個空指針異常呢Caused by: java.lang.NullPointerException: null

當大家遇到這個問題,大家是怎么處理?自己解決還是讓開發來解決

以下是小編自己遇到的實際案例:

查詢組織詳情的時候,出現系統異常

既然出現了問題,那么就查看日志唄(學會查看日志,是定位問題的最基本的能力)

 

 

查看代碼的247行,是操作啥:

 

第247行的代碼是查詢orgAuth.getUserMaxLimit()方法獲取getUserMaxLimit

獲取接口的sql,查看哪個sql是在查詢getUserMaxLimit

通過對比發現:

 

數據庫中確實查詢到的UserMaxLimit字段的NULL,所以后端拋出了空指針異常

那么看一下正常的不報錯的查詢的結果數據:

至此,問題已經找到了

那么怎么解決這個問題就簡單了,直接復制這個字段到存在問題的數據記錄中

INSERT INTO `debtoauth2`.`t_organization_auth` (`id`, `orgId`, `smsSwitch`, `smsMaxLimit`, `userMaxLimit`, `debtMaxLimit`, `createTime`, `updateTime`, `isOutCall`) VALUES ('1671037', '3', '0', '-1', '5', '50', '2019-09-25 17:25:57', '2019-09-25 17:25:57', '0');

 

再次查看業務接口:

 

問題已經解決

 

其實項目環境出現報錯不可怕,關鍵是要有自己的定位意識,環境問題,數據問題,配置問題都可能阻塞測試過程,只有掌握了問題的解決方法,以不變應萬變

其實針對這類空指針的異常定位,比較簡單,如果永遠不去自己排除問題,永遠沒有進步,依賴開發

實際上出現空指針的時候,有可能是並發的時候出現接口查詢超時,導致下面的接口參數為空,或者數據庫中不存在這個字段,或者緩存沒有這條記錄導致的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM