這個問題正在讓我有點瘋狂,所以希望你們中的一個好人可以指出我在正確的方向。我正在嘗試準備將從客戶端傳遞到服務器的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