日期:2014-05-20  浏览次数:20762 次

各种常见Bug大集合,大家贡献吧
开发中各式各样的需求,加上设计不充分,导致coding时,时常因为时间紧张而疏忽细节,导致Bug重重。

如果刚刚结束开发,想必大家对错误记忆犹新。但当新需求一来,工期紧急,我们又会一不小心,步步为坑。

此贴旨在征集各种常见Bug,为将来开发扫清小障碍,如果再犯,那就是你的不是了。

抛砖引玉,添加有分!

Bug No.1 : 空检查 
太经典了,太常见了,拿到一个引用,永远别太相信它,不然,你的控制台就会爆出NullPointException。请这样:
if(reference != null){
//operate reference logic
}
推广开来,假如你后续逻辑基于某个对象,或对象的某个值,请先检查它,判断它是否为null或""或0之类。否则逻辑可能不会按照你预计的方向发展。

Bug No.2 : 传递引用
当传递一个类引用时,一定小心,任何操作都会影响引用的对象。
ArrayList listA = new ArrayList(); 
ArrayList listB = listA;
这时,你对listB的操作都会修改到listA,记住,如果想用到listA的原值又不想动它,请重写clone方法:
ArrayList listB = listA.clone();
推广开来,假如你使用的面向对象语言,时刻注意,复杂类型你传递的都是他本身。

Bug No.3 : 字符串转数字
假如你写出了类似下列的代码:
int i = Integer.parseInt(s); 
请记得写try catch语句,因为它有可能抛出NumberFormatException,然后你的程序就莫名其妙的挂掉了,原因是用户没按照你想到的方式输入。 
推广开来,假如你进行各种数据转换,记得检查,是否转换成功。

Bug No.4 : 对字符串截取
假如你写出了下列代码:
String s_sub = s.substring(3,4); 
万一s的长度没有那么长,就会爆出StringIndexOutOfBoundsException
推广开来,假如你经行集合,数组,字符串等操作,记得先判断长度,再根据长度做操作,不然就会有各种IndexOutOfBounds的异常出现在你面前。 



------解决方案--------------------
用ssh常有的错误就是:找不到这个类异常,还有找不到这个方法异常。。。。。。。
------解决方案--------------------
还有一个OutOfMemoryError内存溢出。。。。。。。
------解决方案--------------------
还有IO流中,找不到路径异常。。。。。丫的,名字都忘了。。。。。。。
------解决方案--------------------
等着看最后的总结
------解决方案--------------------
ClassNotFoundException
FileNotFoundException
IllegalArgumentException
------解决方案--------------------
List循环时,做了remove操作。
------解决方案--------------------
检查对象是否相等,"==" 和 "equals" 混淆使用.
------解决方案--------------------
好贴   希望继续发展    
期望看到神贴的那一天  
Java刚入门 我就当个坐享其成的人好了
------解决方案--------------------