你們在項目測試過程當中,是否是常常會碰到這個空指針異常呢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');
再次查看業務接口:
問題已經解決
其實項目環境出現報錯不可怕,關鍵是要有本身的定位意識,環境問題,數據問題,配置問題均可能阻塞測試過程,只有掌握了問題的解決方法,以不變應萬變
其實針對這類空指針的異常定位,比較簡單,若是永遠不去本身排除問題,永遠沒有進步,依賴開發
實際上出現空指針的時候,有多是併發的時候出現接口查詢超時,致使下面的接口參數爲空,或者數據庫中不存在這個字段,或者緩存沒有這條記錄致使的