我在下面分享我的代码: 问题是它没有任何错误,但我得到“异常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();
}
}
答案 0 :(得分:0)
如documentation中所述,getJSONObject和构造函数抛出异常。因此,如果您没有使用try / catch包围这些函数,则必须向上抛出该异常。
注意:您在自己的函数中使用了try / catch,这就是您的解决方案有效的原因。
希望这会有所帮助:)