永远不会在相应的try语句的主体中抛出JSONException,不同的环境

时间:2017-01-10 11:47:34

标签: java exception

我在下面分享我的代码: 问题是它没有任何错误,但我得到“异常JsonException永远不会在服务器中的相应try语句的主体中抛出”。

当我在以下两种方法中添加“throws JSONException”的声明时,问题就解决了,但实际上我不想这样做。可能是什么原因?

private JSONArray convertStringToJsonArray(String source)throws JSONException {
    return new JSONArray(source);
}

private JSONObject getElementIndexAt(JSONArray jsonArray, int index)throws JSONException {
    return jsonArray.getJSONObject(index);
}
public class JsonModifier {

public String getElementIndexAt(String source, int index){
    String output;

    try
    {
        JSONArray jsonArray = convertStringToJsonArray(source);
        JSONObject jsonObject = getElementIndexAt(jsonArray, index);
        output = convertJsonToString(jsonObject);
    }
    catch(JSONException ex)
    {
        log.error("Page not found, exception: " + ex.getMessage());
        output = "Page not found, exception: " + ex.getMessage();
    }

    return output;
}

private JSONArray convertStringToJsonArray(String source) {
    return new JSONArray(source);
}

private JSONObject getElementIndexAt(JSONArray jsonArray, int index) {
    return jsonArray.getJSONObject(index);
}

private String convertJsonToString(JSONObject jsonObject){
    return jsonObject.toString();
}

}

1 个答案:

答案 0 :(得分:0)

documentation中所述,getJSONObject和构造函数抛出异常。因此,如果您没有使用try / catch包围这些函数,则必须向上抛出该异常。

注意:您在自己的函数中使用了try / catch,这就是您的解决方案有效的原因。

希望这会有所帮助:)