读书人

新浪微博因微博已删除出现数组越界错误

发布时间: 2012-10-29 10:03:53 作者: rapoo

新浪微博因微博已删除出现数组越界异常问题
在用新浪的API的时候,经常碰到的异常就是数组的越界异常,搞死人...
很多时候这种异常是发生在微博已经删除,或者用户已经删除的时候的,这两天在根据微博ID获取用户的id的时候就出现了这种数组越界异常,终于,看了一些帖子之后发现了问题所在。。
根据我的猜测,很多时候这种问题应该都出在Source这个类中,在使用数组时没有进行数组的判断,如下代码:
public Source(String str) {
super();
// TODO Auto-generated constructor stus
String[] source = str.split("\"",5);
url = source[1];
relationShip = source[3];
name = source[4].replace(">", "").replace("</a", "");
}

当一条微博删除之后,str就为空了,但是不知道这时为什么数组长度还是1,....不管怎么,下面去数组之后就会越界了,解决方法 加上一个判断,如下:
public Source(String str) {
super();
// TODO Auto-generated constructor stus
String[] source = str.split("\"",5);
if(source.length != 1)
{
url = source[1];
relationShip = source[3];
name = source[4].replace(">", "").replace("</a", "");
}

}

下次碰到数组越界一定不能放过Source空的判断,还有其他异常也是这个错误的。

读书人网 >编程

热点推荐