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

你們在項目測試過程當中,是否是常常會碰到這個空指針異常呢Caused by: java.lang.NullPointerException: nulljava

當你們遇到這個問題,你們是怎麼處理?本身解決仍是讓開發來解決sql

如下是小編本身遇到的實際案例:數據庫

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

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

 

 

查看代碼的247行,是操做啥:併發

 

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

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

經過對比發現:日誌

 

數據庫中確實查詢到的UserMaxLimit字段的NULL,因此後端拋出了空指針異常blog

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

至此,問題已經找到了

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

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');

 

再次查看業務接口:

 

問題已經解決

 

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

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

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

相關文章
相關標籤/搜索