首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

各种常见Bug大集合,大伙贡献吧

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

各种常见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的异常出现在你面前。 



[解决办法]
ClassNotFoundException
FileNotFoundException
IllegalArgumentException
[解决办法]
List循环时,做了remove操作。
[解决办法]
检查对象是否相等,"==" 和 "equals" 混淆使用.
[解决办法]
好贴   希望继续发展    
期望看到神贴的那一天  
Java刚入门 我就当个坐享其成的人好了
------解决方案--------------------


使用JDBC时忘记数据库连接的释放,或者异常导致关闭代码没执行,比如:


Connection conn = DriverManager.getConnection(...);
...
conn.close();  //如果前面的业务处理出错,连接不会关闭

比较靠谱的方式是使用try...finally保证连接的关闭:

Connection conn = DriverManager.getConnection(...);
try {
    ...
} finally {
    conn.close();
}

由此展开,文件的关闭,Hibernate Session的关闭,都要注意这个问题

热点排行