我的应用向服务器发送POST请求,并使用JSON格式获取响应。
有时候我的JSON响应为“null”(如果请求进入时间)。 在这种情况下,我需要通知用户超时(对话或吐司)并避免应用程序崩溃。
如何正确处理JSONException并避免应用程序崩溃?
谢谢! 马可
答案 0 :(得分:3)
为了避免解析你的json时你的应用程序崩溃,试试这个:
if (jsonResponse == null) {
// notify user
} else {
try {
// parse json here.
} catch (JSONException e) {
Toast.makeText(this,"Error on the response", 3000).show();
}
}
答案 1 :(得分:1)
检查您的json响应是否为空。然后解析json。
if (jsonResponse == null) {
// notify user
} else {
// parse json here.
}
答案 2 :(得分:0)
获得完整的例外:
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();
}