1

我有这段代码:

HJRestClient.post(path, params, new JsonHttpResponseHandler() {
        @Override
        public void onSuccess(int statusCode, Header[] headers, JSONObject response) {

            try {
                JSONArray array = response.getJSONArray("tags");
                if (adDetailViewAdapter != null) {
                    adDetailViewAdapter.setTags(array);
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }

        }
    });

JSONArray array = response.getJSONArray("tags");它在异常线上崩溃W/System.err: org.json.JSONException: No value for tags

虽然我已经编写了捕获异常的代码,但它并没有被捕获并导致应用程序崩溃。

我有 2 台设备三星 Galaxy Note 5Android v6.0.1成功exception捕获。

另一个没有被抓住并导致崩溃Android v4.4.2的华为 Mate 7 。exception

我还写道:

catch (Exception exception) {}

但它仍然崩溃了。

有什么帮助吗?

4

1 回答 1

0

你应该这样:

HJRestClient.post(path, params, new JsonHttpResponseHandler() {
        @Override
        public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
            try {
                if(response!=null&&response.has("tags")){
                    JSONArray array = response.getJSONArray("tags");
                    if (adDetailViewAdapter != null) {
                        adDetailViewAdapter.setTags(array);
                    }
                }

            } catch (JSONException e) {
                e.printStackTrace();
            }

        }
    });

希望这会帮助你。

于 2016-05-10T11:37:54.523 回答