gpt4 book ai didi

android - JSONObject 将方法放在 try block 中导致错误但未执行 catch block

转载 作者:行者123 更新时间:2023-11-30 02:37:50 26 4
gpt4 key购买 nike

这个问题让我有点发疯所以希望你们中的一位好人能给我指出正确的方向。我正在尝试准备一个将从客户端传递到服务器的 JSONObject。以下是将有问题的方法简化为基本要素:

private JSONObject getJsonParam(int id)
{
JSONObject param = new JSONObject();
try
{
param.put("functionCode", 50);
param.put("id", id);
return param;
}
catch (JSONException e)
{
e.printStackTrace();
}
catch (Throwable e)
{
e.printStackTrace();
}
return null;
}

我在 Debug模式下仔细跟踪了代码。在实际方法中,我在 JSONObject 中放置了更多参数,一切都很好,直到我尝试插入 id 的最后一个 param.put() 方法。当这是当前执行行时,我可以看到 param 变量,一切看起来都不错。然后当我执行step函数执行最后一个param.put调用时,它跳转到return null语句。我在两个 catch block 中都设置了断点,但似乎都没有被执行。 (我添加了第二个 catch block 以确保没有其他 throwable 导致问题)。

有什么想法会导致这种奇怪的行为吗?我什至尝试重新排列看跌期权的顺序。它对特定的 put 调用没有任何问题,但只是 return 语句之前的最后一个调用。

我在 Android/Java 工作。

最佳答案

代码不会导致错误 - 您只是被编译器优化了两个 return 语句以使用相同代码这一事实所困扰。

在每种情况下,返回值都是某个“当前值”,在一种情况下,当前值来自参数变量,在另一种情况下,它为空。由于编译器只使用一份代码副本,因此调试器无法正确确定正在执行的实际源代码行。

关于android - JSONObject 将方法放在 try block 中导致错误但未执行 catch block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26220101/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com