Android不断报告用户崩溃的情况,而这些崩溃我无法在手机上重现。我可以找到似乎不正确的行:
cursor.moveToFirst();
elechs=cursor.getString(2);
elecls=cursor.getString(3);
gass=cursor.getString(4);
waters=cursor.getString(5);
cursor.close();
if (elechs.length()!=0){
elechdb=Double.valueOf(elechs);
}
else {
elechdb=0.0;
}
if (elecls.length()!=0){
elecldb=Double.valueOf(elecls);}
else {
elecldb=0.0;
}
if (gass.length()!=0){
gasdb=Double.valueOf(gass);
}
else {
gasdb=0.0;
}
if (waters.length()!=0){
waterdb=Double.valueOf(waters);
}
else {
waterdb=0.0;
}
elecldb=Double.valueOf(elecls);
gasdb=Double.valueOf(gass);
waterdb=Double.valueOf(waters);
如果我看一下代码,那没有任何意义。
我想我忘记删除最后三行。首先,我检查字符串。如果字符串为空,则它将值存储为零。
如果单元格为空,则错误的最后三行也将尝试加倍。这会导致很多崩溃。但是不在我的机器上。
我认为,不可能使一个空单元格成为可能。
有谁知道为什么这个错误不会使我的手机崩溃?
由于用户正在获取NumberFormatException,因此您应该捕获该异常并在发生异常时执行适当的操作。
if (elechs.length()!=0) {
try {
elechdb=Double.valueOf(elechs);
} catch (NumberFormatException e) {
// Perform error handling
}
}
如果用户收到NullPointerException,则应在检查字符串长度之前检查字符串是否为null。
如果数据是由用户输入的,则应同时执行上述两项操作,以避免将来出现问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句