我收到以下錯誤了findBUGs:如何解決findbug問題:空通過了非空參數
「方法調用傳遞空非空的參數:空過去了getApiStatus的非空參數(ApiResponse)」
如果apiResponse在CallApi方法(這裏沒有顯示爲簡潔起見)空,就拋出陷入了handleApiException和拋出再次,如果我們不能做任何事情有關異常的異常。
沒有辦法,對於apiResponse空值可以在此代碼片段的鈕被傳遞到getApiStatus()方法。我怎麼能告訴FindBugs的是這不會對空檢查在apiService.CallApi方法完成的頂部做另一個空檢查的情況?我嘗試過使用NonNull註釋,但是這並沒有解決問題。以下是有問題的代碼:
ApiResponse apiResponse = null;
try {
apiResponse = apiService.CallApi(apiURL, requestObject);
}
catch (ApiException ex) {
handleApiException(ex);
}
boolean apiStatus = getApiStatus(apiResponse);
任何想法?
我最終選擇了第二種選擇,因爲我想在當前層處理ApiException,而不是將它傳遞給業務類。感謝您的詳細分析並提供多種選擇。 – greenJavaDev