当我在xml解析后获取数据并在我的应用程序中使用它时,我得到数字格式异常,所以我在该代码之间添加了try和catch块,现在它不是强制关闭但问题是在获得异常之后之后如何重新执行代码并不执行代码,它需要一些默认值并执行下一步 我的代码在pls下面修改我的catch块...
for(int i=0;i<sitesList.getLatitude().size();i++)
{
if(sitesList.getType().get(i).equalsIgnoreCase("Galerías Online"))
{
name = sitesList.getLatitude().get(i);
name1 = sitesList.getLongitude().get(i);
GeoPoint point5 = new GeoPoint((int) (Double.parseDouble(name) * 1E6),
(int) (Double.parseDouble(name1) * 1E6));
OverlayItem overlayItem4 = new OverlayItem(point5, sitesList.getGalleryname().get(i)+ "--"+
sitesList.getAddress().get(i),sitesList.getImagesurl().get(i)+ "--"+sitesList.getEmail().get(i)+ "--"+
sitesList.getPhoneno().get(i)+ "--"+sitesList.getWeb().get(i) );
itemizedOverlay3.addOverlay(overlayItem4);
}
}
}catch (NumberFormatException e) {
}
表示在获得异常后继续循环并使用默认值代替异常。我在这里得到异常name = sitesList.getLatitude()。get(i); name1 = sitesList.getLongitude()。get(i);我想在异常之后继续如何做到这一点..我是java新手
答案 0 :(得分:1)
如果您的代码中有空值或空值,请修改您的代码,如下所示:
if(sitesList.getType().get(i).equalsIgnoreCase("Galerías Online"))
{
name = sitesList.getLatitude().get(i);
name1 = sitesList.getLongitude().get(i);
if(name.equalsIgnoreCase("")||name.equalsIgnoreCase(null))
{
name=// your default longitude or latitude
}
if(name1.equalsIgnoreCase("")||name1.equalsIgnoreCase(null))
{
name1=// your default longitude or latitude
}
....
}
希望有所帮助
答案 1 :(得分:0)
for(int i=0;i<sitesList.getLatitude().size();i++)
{
if(sitesList.getType().get(i).equalsIgnoreCase("Galerías Online"))
{
name = sitesList.getLatitude().get(i);
name1 = sitesList.getLongitude().get(i);
GeoPoint point5 = new GeoPoint( (Double.parseDouble(name) * 1E6),
(Double.parseDouble(name1) * 1E6));
OverlayItem overlayItem4 = new OverlayItem(point5, sitesList.getGalleryname().get(i)+ "--"+
sitesList.getAddress().get(i),sitesList.getImagesurl().get(i)+ "--"+sitesList.getEmail().get(i)+ "--"+
sitesList.getPhoneno().get(i)+ "--"+sitesList.getWeb().get(i) );
itemizedOverlay3.addOverlay(overlayItem4);
}
}
}catch (NumberFormatException e) {
}
因为你将Double转换为Int ...