我试图解析一个字符串以计算产品总价,但是当我使用“ Integer.parseInt”时,我的应用程序崩溃了。我知道我必须初始化一个字符串数组,导致指令“ Integer.parseInt”无法解析NULL,但我不知道确切的问题是,我的数组元素来自分裂一个字符串。
class Thread2 implements Runnable {//recieve
@Override
public void run() {
while (true) {
try {
final String message = input.readLine();
if (message != null) {
owner.runOnUiThread(new Runnable() {
@Override
public void run() {
String[] a = message.split("\\#");
int n = a.length;
for(int i=1;i<n;i++){
String[] b =a[i].split("\\*");
tee.append(b[0]+" "+b[1]+"\n");
y.append(b[1]+"*");
P1=Integer.parseInt(b[1]);
//total = total+p1[i];
}
te.setText(Integer.toString(total));
}
});
} else {
Thread myThred = new Thread(new Thread21());
myThred.start();
return;
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
请使用try-catchui块中的异常处理。
try {
String[] b =a[i].split("\\*");
tee.append(b[0]+" "+b[1]+"\n");
y.append(b[1]+"*");
P1=Integer.parseInt(b[1]);
//total = total+p1[i];
} catch(Exception ex) {
}
除此之外,Exception在catch块中使用而不是IOException处理各种异常并避免崩溃。
像这样编辑:
} catch (Exception e) {
e.printStackTrace();
}
代替:
} catch (IOException e) {
e.printStackTrace();
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。