#android #json #exception
#Android #json #исключение
Вопрос:
мое приложение отправляет POST-запрос на сервер и получает ответ в формате JSON.
Иногда мой ответ JSON равен «null» (если время ожидания запроса истекло). В этом случае мне нужно уведомить пользователя о тайм-ауте (диалоговом окне или всплывающем окне) и избежать сбоя приложения.
Как мне правильно обработать исключение JSONException и избежать сбоя приложения?
Спасибо! Марко
Комментарии:
1. Если я чего-то не хватает, вы спрашиваете, как вы перехватываете исключение и показываете диалоговое окно?
2. Есть ли причина, по которой блока try-catch будет недостаточно?
Ответ №1:
чтобы избежать сбоя вашего приложения при разборе вашего json, попробуйте следующее :
if (jsonResponse == null) {
// notify user
} else {
try {
// parse json here.
} catch (JSONException e) {
Toast.makeText(this,"Error on the response", 3000).show();
}
}
Ответ №2:
проверьте, является ли ваш ответ json нулевым. только после этого проанализируйте json.
if (jsonResponse == null) {
// notify user
} else {
// parse json here.
}
Ответ №3:
получить полное исключение :
StatusLine statusLine = response.getStatusLine();
if (statusLine.getStatusCode() == HttpStatus.SC_OK) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
response.getEntity().writeTo(out);
out.close();
jsonString = out.toString();
}
}catch(ConnectException e){
// handle your exception here, maybe something like
Toast.makeText(context,"Error!",5000).show();
finish();
} catch (URISyntaxException e1) {
e1.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}