这个问题正在让我有点疯狂,所以希望你们中的一个好人可以指出我在正确的方向。我正在尝试准备将从客户端传递到服务器的JSONObject。以下是解决问题的方法:JSONObject放置方法在try块导致错误,但catch块没有执行
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;
}
我仔细追踪了调试模式下的代码。在实际的方法中,我把更多的参数放在JSONObject中,并且一直很好,直到我尝试插入id的最后一个param.put()方法。当这是当前的执行线时,我可以将param变量可视化,并且所有外观都很好。然后当我执行step函数来执行最后一个param.put调用时,它跳转到返回null语句。我已经在两个catch块中放置了断点,并且看起来没有被执行。 (我添加了第二个catch块,以确保没有其他throwable导致问题)。
任何想法会导致这种奇怪的行为?我甚至尝试重新安排看跌期权的顺序。它对于特定的put调用没有任何问题,而只是return语句之前的最后一个。
我正在从事Android/Java。
你得到了什么错误,pl发布你的堆栈跟踪 – 2014-10-06 16:02:45
这可能是IDE的一个问题。通过在函数外部放置一个断点并检查它返回的内容,确保你的结果是JSONObject而不是null。 – 2014-10-06 16:06:43
@PedroOliveira这确实是IDE的一个问题。当我按照你的建议做时,我发现该函数正在返回正确的JSONObject!谢谢!我想这意味着我浪费了很多时间来解决一个实际上不成问题的问题......哈哈 – user3478532 2014-10-06 16:16:42