NullPointerException

起因:在需求提測的過程中,測試在做破壞性測試時發現,錯誤消息沒有提示,只有一個錯誤號:

{
    "flag": 0   // 0代碼異常標識
}

正常情況應該是這樣的:

{
    "flag": 0
    "error":xxx
}

然後在找尋代碼之後發現是空指針異常,在代碼裏我已經try-catch了爲什麼到接口測試的時候不提示錯誤消息呢?後來發現try-catch確實捕獲了,但是返回去的json有一個默認的效果就是把null的字段過濾掉。DEBUG的時候返回的參數是這樣的:

{
    "flag": 0
    "error":null
}

json自動把爲空的error過濾掉了導致的。由於返回給前臺null值是沒有意義的,所以最後的解決辦法是在try-catch塊中做如下處理:

try {
    ...;
} catch (Exception e) {
    response.setErrorFlag();
    response.setError((null == e.getMessage()) ? "NullPointerException" : e.getMessage());
}

按說空指針異常屬於運行時異常,是代碼邏輯的問題,但是寫代碼時難免可能會出現尤其是空指針異常,所以返回給前臺的json串中明確的標識還是很重要的,不然如果連一點錯誤消息都沒有的話測試抓瞎咱們開發也抓瞎。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章