概率空指针异常问题

不知道各位大侠遇到过此类问题没有:具体现象是在我的应用里操作操作着就出现了空指针异常,然后程序崩溃退出,关键是这空指针总是概率出现;

出现问题的位置我已经找到,并且进行了空指针的判断,但是还会出现,现在真的是无解了,几乎所有的可能的原因都想到了(变量被回收,服务器返回值为空等),但就是解决不了,求高人指教啊!

有需要的话我会贴出代码,谢谢各位大侠了!


问题补充

问题补充
我总觉得是服务器不稳定,造成了有时我这边发送请求时返回的数据为空,但又没有很好的证据

17个回答

检查有没有超时的因素,试试增大应用的内存能不能解决问题

如果brandsIndex是Integer类型的, 可以检查下它是不是有可能为空。

切换页面时,indent 也切换了。既然是切换页面时报错,那应该 localXcarApp 是被定义成线程共享了。

从你贴出来的代码,理论上是有可能抛出数组越界的异常的;
localXcarApp是全局变量吗?是在你页面变换的时候才会抛出空指针吗?
是不是每次页面变换都会对 localXcarApp全局变量进行赋值?
这个方法是不是执行的条件是什么?

正规的处理异常语句应该是try-catch-finally,这里应该使用,否则可读性太差,也不利于问题定位。

关于异常位置,上面已经有人说了,brandsIndex,如果为空,就是空指针异常,如果越界,就是数组越界异常,用catch可以帮助定位问题。

[code="java"]
try{
brandInfo = localXcarApp.getBrandInfos().get(brandsIndex);
}catch(NullpointerException ne){
//处理空指针异常
}catch(Exception e){
//处理其它异常
}finally{
//收尾工作
}
[/code]

抓到异常,看stacktrace就知道从哪里来,是什么问题。

if (localXcarApp != null && localXcarApp.getBrandInfos() != null && localXcarApp.getBrandInfos().get(brandsIndex) != null) {

brandInfo = localXcarApp.getBrandInfos().get(brandsIndex);

}

你的hashmap 是在多线程下应用,出现空指针应该说是正常的。

确认一下你数据在多线程情况下的安全。

[size=large][color=indigo]ArrayList有一种空是这样的[null],你判断没呢?[/color][/size]

共17条数据 首页 2
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问