关于空指针异常的副作用及代码规范问题
来源:互联网 发布:百度飞豆软件 编辑:程序博客网 时间:2024/05/22 13:17
刚刚进入职场时新人们接受培训时总会看到关于代码规范方面的要求,那时可能不当一回事,后面经历多了就明白这其中道理。
按规范进行编码,可以提高代码可读性,项目可维护性等,可以为日后节省很多时间。
但是最近还是碰到了一例反面教材,浪费了不少时间。
由于项目中的一个问题,工程师们经过分析,找到一个曾经有过修改类似问题的方案,根据描述我们认为可以解决问题,但是看了修改内容后觉得这是扯淡。
代码提交者利用了空指针的副作用来修正bug,大概为这样:
public object foo(){
...
String[] a = getString(); // 从别的模块获取一个字符串数组
//if( a != null){
if(a[0] == FEATURE){
//do something
}
//}
obj = process();
return obj;
}
作者把对a的空指针判断给注释了,这让人很莫名其妙,在android应用中这不是会造成FC吗?于是这个方案就被忽略了。
后面经过验证发现加入这个修改后问题解决了,原来是利用了空指针副作用,当a为null时,如果调用foo的函数捕捉了null exception,则后面的process()就不会走,就不会有问题。
但是前提是调用者捕捉了异常,如果没有捕捉,那么真的会发生FC了。
这种代码可读性差,维护性差,甚至连个注释都没有!碰到这样的程序员,你是不是要疯了?
修改后的代码:
public object foo(){
...
String[] a = getString(); // 从别的模块获取一个字符串数组
if( a != null){
if(a[0] == FEATURE){
//do something
}
} else {
return null;
}
obj = process();
return obj;
}
- 关于空指针异常的副作用及代码规范问题
- 关于listView.setAdapter(adapter)报空指针异常的问题
- 关于NullPointException空指针异常的保护问题
- 关于java中判断为空出现空指针异常的问题
- 关于hibernate空指针异常的几个问题
- 空指针异常问题
- 空指针异常的相关问题:
- 有关butterknife空指针异常的问题
- 关于空指针异常 NullPointerException
- 关于Volley网络请求框架空指针异常问题
- Android客户端和Java服务器端Socket代码连的坑(接空指针异常问题)
- 关于使用listFile()遍历文件夹报空指针异常的问题
- 关于创建对象数组的引用数据类型空指针异常问题
- 关于java中使用Session时出现空指针异常的问题
- 关于指针的判空问题
- Android--关于Cursor空指针的问题
- 关于servletContext.getRealPath()空指针的问题
- 关于空指针报错的问题
- oracle修改一个字段的某部分内容
- 【测一切可测】Testin云测“质量管家QAMaster”全国巡展沙龙(成都站)9月23日晚开战
- VC++工程文件说明
- Android中JNI遇到问题
- 实战mp4文件解析
- 关于空指针异常的副作用及代码规范问题
- JQuery对id中含有特殊字符的转义处理示例
- Android中调用本机camera,遇到无法回调onActivityresult方法
- 绘制图形
- 链表中倒数第K个结点
- sysctl命令详解
- 哈希表(hashtable)的javascript简单实现
- 编译 QGIS 1.7.0的步骤及相关事项
- Android之Widget学习总结