空指针异常可以算是一种很常见的错误,
一般是由于对象或数据类型未进行初始化造成,例如:
int a;
a += 1;
ServerSocket ss;
ss.accept();
以上情况都会出现空指针异常;
遇到这种情况一般加一个if语句if(ss != null)...判断是否为空即可。
注意:在循环语句中例如while每次循环都需要判断一次
下面是我遇到的一次异常:
原先:
while ((msg = br.readLine()).length() > 0) {
...
}
报空指针异常后改为:
if(br.readLine() != null) {
while ((msg = br.readLine()).length() > 0) {
...
}
}
结果还是产生异常,最后发现是while语句最后一次循环时br.readLine()为空,改为:
while (br.readLine() != null && (msg = br.readLine()).length() > 0) {
...
}