我得到以下findbugs错误:
“方法调用为非null参数传递null:为getApiStatus(ApiResponse)的非null参数传递null”
如果CallApi方法中的apiResponse为null(为了简洁起见,这里没有显示),它只会抛出一个异常,该异常在HandLeapIEException中被捕获,如果我们不能对该异常执行任何其他操作,它会再次抛出。
在这段代码片段的基础上,apiACK的空值不可能传递给getApistatus()方法。我如何告诉findbugs情况就是这样,而不在apiService中完成的空检查之上进行另一次空检查。CallApi方法?我尝试过使用NonNull注释,但这并不能解决问题。这是有问题的代码:
ApiResponse apiResponse = null;
try {
apiResponse = apiService.CallApi(apiURL, requestObject);
}
catch (ApiException ex) {
handleApiException(ex);
}
boolean apiStatus = getApiStatus(apiResponse);
有什么想法吗?
如果CallApi
抛出异常,那么它将被处理,控制将继续getApiStatus
,而apiResponse
除了最初的null
之外,不会被分配任何内容。
在您的代码中,无论是否发生ApiException
,都会调用getApistatus(apiACK)
。
你应该用这个代替:
try {
ApiResponse apiResponse = apiService.CallApi(apiURL, requestObject);
// line bellow will not execute if CallApi throws ApiException
boolean apiStatus = getApiStatus(apiResponse);
}
catch (ApiException ex) {
handleApiException(ex);
}
// lines bellow will execute after try-catch block above
// regardless of the ApiException occurring or not
我的建议是不处理异常,而是将此方法设置为异常。然后把它放在链条的上面。如果您的代码在该try块中获得一个exeption,然后在catch中处理该异常,那么apiResponse很容易为null。然后将继续尝试getApiStatus方法,从而传入null。
public void yourMethod() throws ApiException {
ApiResponse apiResponse = apiService.CallApi(apiURL, requestObject);
boolean apiStatus = getApiStatus(apiResponse);
// Whatever else you need to do here.
}
您唯一的其他选择是将apiStatus调用放在try块内apiResponse调用的下面,如下所示:
ApiResponse apiResponse = null;
try {
apiResponse = apiService.CallApi(apiURL, requestObject);
boolean apiStatus = getApiStatus(apiResponse);
} catch (ApiException ex) {
handleApiException(ex);
}
或者,正如您所说,在调用getApiStatus之前进行空检查,但这并不像上面的选项那样可取。
我想从'get codepage'传递2个参数到'mainpage',然后我出现了这个错误。这是我的getCodePage我传递参数的部分: 当我想将参数作为对象时,这是我的主页: 那么这里有一个错误:没有为类型“object”flutter error定义运算符“[]”
本文向大家介绍解决Python传递中文参数的问题,包括了解决Python传递中文参数的问题的使用技巧和注意事项,需要的朋友参考一下 今天有个需要需要传递中文参数给URL 但是在GBK环境下的脚本传递GBK的参数老是给我报UNICODE的解码错误。烦的很。 所以我们果断选择用urlencode来处理中文, 由于国内外网站编码不同,国内是GBK的,国外是UTF8的。 这样我就得到了GBK的url编码,
这个问题的解决方案是什么?问题在这里,代码在这里: > 列表项 在BindViewHolder上公开无效(@nonNull HolderOrderShop持有人,int位置){ //转换时间日历=日历。getInstance();日历setTimeInMillis(Long.parseLong(orderTime));String formattedate=DateFormat。格式(“日/月/年
问题内容: 下面的程序引发NullPointerException。在Log cat中,它显示: 单击该按钮时,它不会进入Mousefragment类。我试图解决它,但是我不能-如何解决这个问题? 编辑 单击该按钮多少次,该异常随同invalid_ip Toast消息一起显示 问题答案: 如前所述,您的问题询问如何解决此问题。 您需要弄清楚在哪里抛出。为此,请查看堆栈跟踪以查看引起问题的行。然后,
本文向大家介绍解决PHP使用CURL发送GET请求时传递参数的问题,包括了解决PHP使用CURL发送GET请求时传递参数的问题的使用技巧和注意事项,需要的朋友参考一下 最近在使用curl发送get请求的时候发现传递参数一直没有生效,也没有返回值,以为是自己哪里写错了,网上找东西时也没有人专门来说get请求传递参数的内容,所以,今天在这里记录一下,希望可以帮到一些人 get请求是最简单的请求,不过要
单点登录操作流程:客户单通过携带值得url路径跳转,白名单界面通过url中得id,key请求后端数据渲染界面。 浏览器URL中输入 http://localhost:8088/taxBureauLogin?id=1206&key=zE9+TICzsrej... 浏览器转义为 http://localhost:8088/taxBureauLoginid=1206&key=zE9%20TICzsre.