我正在制作一个使用排球库解析jsosn的应用程序。我创建了单独的Parser类,其中包含解析json的方法。我在我的活动(JsonObjectRequest - onResponse)类中使用该方法来解析数据。但突然间所有捕获块都给我错误 -
必需 - 可扔, 发现 - JsonException
我的阻止
catch (JSONException e) {
e.printStackTrace();
}
我的JsonObjectRequest方法
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST,
url, params,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
pDialog.hide();
new AGCommonMethods().AGLog(0, TAG, response.toString());
try {
AlertDialog dialog = new AGCommonMethods(mContext).showMessage("" + response.getString("message"));
dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
onBackPressed();
}
});
} catch (JSONException e) {
e.printStackTrace();
}
}
}
Parser Class
public Object parseResponse(String response) throws JSONException {
JSONObject jsonObject = new JSONObject(response);
try {
if (jsonObject.has("ABC")) {
JSONObject jsonData = jsonObject.getJSONObject("ABC");
//Parsing Data
return jsonObject;
}
} catch (JSONException e) {
e.printStackTrace();
}
return false;
}
答案 0 :(得分:-1)
您应该维护&#39; Parent child&#39; 类的关系。
我的意思是你不能将上面的父类放在try-catch block.
示例:
catch(NullPointerException){
//Handling code of NullPointerException
}
catch(ArrayIndexOutOfBounds){
//Handling code of ArrayIndexOutOfBounds
}
catch(Exception){
//Handeling code if all above failed to catch Exception occured
}
我认为你放错了Exception
类的序列。
尝试将JSONException
替换为Exception
类。