各种常见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刚入门 我就当个坐享其成的人好了
------解决方案--------------------