使用 IBM 静态工具优化 Java 代码,第 2 部分: 分析错误报告
2010-01-11 00:00:00 来源:WEB开发网概述
BEAM 报告的结果文件是通过 build.xml 中 --beam::complaint_file 所定义的,在这里,本文假设其为 BEAM-messages。BEAM-messages 记录着报出的所有代码缺陷,这些缺陷分为 ERROR,MISTAKE 和 WARNING 三大类,严重程度依次递减。每一个具体的 ERROR,MISTAKE 和 WARNING 都代表着一个错误模式,本文接下来就通过实例分析理解其中的某些重要错误模式,告诉读者在写 Java 代码时如何避免这些错误模式的发生,从而写出高质量的代码。
由于篇幅原因,本文只主要重点介绍四个常见的错误模式,并在最后简单介绍一下在编程时还应该注意的一些其它技巧,文章结构如下:
操作空对象
数组访问越界
除 0 错误
内存泄漏
其它技巧
操作空对象
这是报出的 ERROR2 错误模式。据个人项目经验,这种错误模式出现最为频繁,但是编程人员却往往很难发现,因为这种编译器发现不了的错误可能在代码运行很长时间时都不会发生,可是一旦出现,程序就会终止运行,并抛出 runtime 异常 java.lang.NullPointerException。通常有以下这些情况会导致操作空对象错误模式的发生。
调用空对象的方法
访问或修改空对象的域
访问或修改空数组对象的数组元素
同步空对象
传入空对象参数
下面让我们用简单易懂的例子一一介绍它们。
调用空对象的方法
清单 1. 调用空 String 对象的 charAt() 方法
String str = null;
int a = 0;
if( a > 0 ) {
str = new String[]{ "developer " , "Works"};
}
char ch = str.charAt(0);
更多精彩
赞助商链接