新浪微博因微博已删除出现数组越界异常问题 博客分类: 程序问题记录 source
程序员文章站
2024-03-04 13:44:17
...
在用新浪的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空的判断,还有其他异常也是这个错误的。
很多时候这种异常是发生在微博已经删除,或者用户已经删除的时候的,这两天在根据微博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空的判断,还有其他异常也是这个错误的。