java质量重构-bug改造(二)

8、不应忽略没有副作用的函数的返回值

        当对函数的调用没有任何副作用时,如果结果被忽略,调用的意义何在?在这种情况下,要么函数调用没用,应该删除,要么源代码没有按预期运行。

案例:

9、条件执行的代码应该是可达的

        总是truefalse可能导致死代码的条件表达式。这样的代码总是有问题,永远不应该在生产中使用。

案例:

10、条件结构中的所有分支不应具有完全相同的实现

        将switch或者if链中的所有分支都具有相同的实现是错误的。要么发生了复制粘贴错误并且应该执行不同的操作,要么根本不应该有switch/if链。

案例:

11、不应无条件替换map

        当为键或索引保存值然后无条件覆盖时,这样操作是没有意义的,也很可能是错误的。

案例:

12、返回值包含操作状态码时不应被忽略

        当函数调用的返回值包含操作状态代码时,应测试该值以确保操作成功完成。

案例:

改造: 

if (!f1.delete()) {
 //文件删除失败;采取适当的行动
}

13、不应检查“compareTo结果的特定值

        虽然大多数compareTo方法返回 -10 1,但有些方法不会返回,并且compareTo针对 0 以外的特定值进行测试可能会导致误判。

案例:

改造:

        改为>0比较。

14、应该检查从流读取返回的值

        您不能假设任何给定的流读取调用都会填充byte[]传入的方法。相反,您必须检查 read 方法返回的值以查看读取了多少字节。如果不这样做,您就会引入有害且难以重现的错误。

案例:

改造 :

int count = 0;
    while (count = is.read(buffer) > 0) {
…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值