Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 捕获NullPointerException Java的变通方法_Android_Json_Nullpointerexception - Fatal编程技术网

Android 捕获NullPointerException Java的变通方法

Android 捕获NullPointerException Java的变通方法,android,json,nullpointerexception,Android,Json,Nullpointerexception,我试图解析JSON,但也允许用户输入JSON url的一部分。因此,会出现url“看起来”正确但不指向任何内容的实例。这会导致NullPointerException。为了阻止我的代码崩溃,我必须捕获这个错误。我知道你真的不应该这么做,所以有谁能告诉我一个更好的方法来解决这个问题吗?抱歉,我对Java/Android还不太熟悉 受保护的字符串doInBackground(字符串…参数){ ArrayList param=新的ArrayList(); 试一试{ 字符串url\u select=F

我试图解析JSON,但也允许用户输入JSON url的一部分。因此,会出现url“看起来”正确但不指向任何内容的实例。这会导致NullPointerException。为了阻止我的代码崩溃,我必须捕获这个错误。我知道你真的不应该这么做,所以有谁能告诉我一个更好的方法来解决这个问题吗?抱歉,我对Java/Android还不太熟悉

受保护的字符串doInBackground(字符串…参数){
ArrayList param=新的ArrayList();
试一试{
字符串url\u select=Final;
JSONObject json=jParser.makeHttpRequest(url\u select,
“得到”,param);
articles=json.getJSONObject(“primaryTopic”);
RegAddress=articles.getJSONObject(“RegAddress”);
试一试{
town=regadress.getString(“PostTown”);
}
捕获(JSONException e2){
Log.e(“JSONException”,e2.toString());
town=regadress.getString(“AddressLine2”);
}
title=articles.getString(“CompanyName”);
description=articles.getString(“CompanyStatus”);
}
catch(java.lang.NullPointerException e){
e(“NullPointerException”,e.toString());
progressDialog.disclose();
//showButtonDialog();
}
捕获(非法状态例外e3){
Log.e(“IllegalStateException”,e3.toString());
e3.printStackTrace();
}
捕获(JSONException e5){
progressDialog.disclose();
//showButtonDialog();
Log.e(“JSONException”,e5.toString());
e5.printStackTrace();
}
返回null;
}
@凌驾
受保护的void onPostExecute(字符串s){
试一试{
字符串newTitle=Html.fromHtml(title.toString();
txtitle.setText(newTitle);
字符串newDesc=Html.fromHtml(description.toString();
txtDesc.setText(newDesc);
字符串newTown=Html.fromHtml(town.toString();
txtTown.setText(newTown);
progressDialog.disclose();
}捕获(例外e){
Log.e(“JSONException”,“Error:+e.toString());
}

}
捕获异常有什么问题?这是非常标准的事情。我看到一些人说不应该捕捉这个特殊的异常。然后,他们通常的推理是,它可能会导致代码稍后出错,在我的情况下,这不太可能,因为捕获异常会停止代码并要求重新输入url…哪一行导致NPE?查看and.articles=json.getJSONObject(“primaryTopic”);我认为,这很奇怪,因为它没有被JSONException阻止