java如何解决findbug问题:为非Null参数传递Null
我发现以下findbugs错误:
“方法调用为非null参数传递null:为getApiStatus(ApiResponse)的非null参数传递null”
如果CallApi方法中的apiResponse为null(为了简洁起见,这里没有显示),它只会抛出一个异常,该异常在HandLeapIEException中被捕获,如果我们不能对该异常执行任何其他操作,它会再次抛出
apiResponse的null值不可能被传递到这段代码snippit底部的getApiStatus()方法中。我怎样才能告诉findbugs情况就是这样,而不在apiService中完成的空检查之上再做一次空检查呢。CallApi方法?我尝试过使用非空注释,但这并没有解决问题。下面是有问题的代码:
ApiResponse apiResponse = null;
try {
apiResponse = apiService.CallApi(apiURL, requestObject);
}
catch (ApiException ex) {
handleApiException(ex);
}
boolean apiStatus = getApiStatus(apiResponse);
有什么想法吗
# 1 楼答案
在代码中,无论
getApiStatus(apiResponse)
是否发生,都将调用ApiException
你应该换成这个: