Eclipse插件之Findbugs
来源:互联网 发布:自动化交易软件 编辑:程序博客网 时间:2024/05/22 04:50
描述:
程序员(特别是初级程序员)在开发过程中,程序bug往往是不可避免的。如何提高代码质量,找到并解决一些低级bug,Findbugs或许可以为你排忧解难。看Findbugs官网对其的描述:A static analysis tool to find bugs in Java programs.一款用Java语言开发的静态分析工具用来找bug(翻译不好别吐槽)
安装:
普通的Eclipse插件安装
Help>Install new Software...>Add... 然后输入Name:findbugs Location:http://findbugs.cs.umd.edu/eclipse>OK>选中FindBugs复选框点击Next>....(到这步还不会就去自杀吧)完了restart Eclipse即可完成安装
使用
选择一个你自己的工程,右键>FindBugs>FindBugs 这样插件就会自动去找代码里可能存在风险了
如果你的工程里有风险,工程名会变成project_name(12) 表示你的工程里可能存在12个风险 ,一层一层打开可以找到具体的风险,每个包名和类名上都会存在这个小括号
风险的代码,会在Eclipse代码显示窗口的左边,也就是显示代码行数的地方出现一个臭虫
我为了测试bug,我创建了一个名为findbugs_example的Java工程,写了一个存在风险的类
对于编码习惯不好的人或者新手,代码的比较不容易看出来
右键findbugs_example开始找风险,提示我的工程有两个风险,点进去发现两个黄色臭虫
findbugs不同颜色的臭虫对应的bug级别也不相同
黑色:分类
红色:严重bug
黄色:警告
分析一下上面的代码
第一个臭虫,创建了一个con并赋初值为null,这种做法实际上是不推荐的,其他引用的地方可能会有空指针,另外从内存的角度考虑性能也是很低的,Java需要对改对象重新赋值,即改变引用地址的操作。
第二个臭虫,毫无疑问是空指针异常,我并未对赋了初值的conn设置值,使用该对象的时候自然会抛出NullPointException
我把上面的代码改变一下
再次用Findbugs寻找风险,提示工程已无风险
注意:Findbugs提示无风险并不代表你的工程就真的没有bug了,Findbugs并不能智能的找到所有的bug,你的代码最终还是得以测试的结果为准。Findbugs为你做的仅仅是找到一些比较简单的风险
程序员(特别是初级程序员)在开发过程中,程序bug往往是不可避免的。如何提高代码质量,找到并解决一些低级bug,Findbugs或许可以为你排忧解难。看Findbugs官网对其的描述:A static analysis tool to find bugs in Java programs.一款用Java语言开发的静态分析工具用来找bug(翻译不好别吐槽)
安装:
普通的Eclipse插件安装
Help>Install new Software...>Add... 然后输入Name:findbugs Location:http://findbugs.cs.umd.edu/eclipse>OK>选中FindBugs复选框点击Next>....(到这步还不会就去自杀吧)完了restart Eclipse即可完成安装
使用
选择一个你自己的工程,右键>FindBugs>FindBugs 这样插件就会自动去找代码里可能存在风险了
如果你的工程里有风险,工程名会变成project_name(12) 表示你的工程里可能存在12个风险 ,一层一层打开可以找到具体的风险,每个包名和类名上都会存在这个小括号
风险的代码,会在Eclipse代码显示窗口的左边,也就是显示代码行数的地方出现一个臭虫
我为了测试bug,我创建了一个名为findbugs_example的Java工程,写了一个存在风险的类
- package org.quinn.example;
- import java.sql.Connection;
- import java.sql.SQLException;
- public class Test2 {
- public Connection con = null;
- void executeUpd(String sql) {
- try {
- this.con.prepareStatement(sql);
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- try {
- con.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- }
对于编码习惯不好的人或者新手,代码的比较不容易看出来
右键findbugs_example开始找风险,提示我的工程有两个风险,点进去发现两个黄色臭虫
findbugs不同颜色的臭虫对应的bug级别也不相同
黑色:分类
红色:严重bug
黄色:警告
分析一下上面的代码
第一个臭虫,创建了一个con并赋初值为null,这种做法实际上是不推荐的,其他引用的地方可能会有空指针,另外从内存的角度考虑性能也是很低的,Java需要对改对象重新赋值,即改变引用地址的操作。
第二个臭虫,毫无疑问是空指针异常,我并未对赋了初值的conn设置值,使用该对象的时候自然会抛出NullPointException
我把上面的代码改变一下
- package org.quinn.example;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.SQLException;
- public class Test2 {
- public Connection con;
- void executeUpd(String sql) {
- try {
- con = DriverManager.getConnection("");
- } catch (SQLException e1) {
- e1.printStackTrace();
- }
- try {
- if (this.con != null)
- this.con.prepareStatement(sql);
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- try {
- if (this.con != null)
- con.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- }
再次用Findbugs寻找风险,提示工程已无风险
注意:Findbugs提示无风险并不代表你的工程就真的没有bug了,Findbugs并不能智能的找到所有的bug,你的代码最终还是得以测试的结果为准。Findbugs为你做的仅仅是找到一些比较简单的风险
0 0
- Eclipse插件之Findbugs
- Eclipse之findbugs插件安装
- Eclipse插件开发之FindBugs插件
- Eclipse插件开发之FindBugs插件
- Eclipse插件开发之FindBugs插件
- Eclipse插件开发之FindBugs插件
- Eclipse插件开发之FindBugs插件
- Eclipse插件开发之FindBugs插件
- Eclipse插件开发之FindBugs插件
- Eclipse插件开发之FindBugs插件
- Eclipse插件开发之FindBugs插件
- Eclipse插件开发之FindBugs插件
- eclipse 之插件 :FindBugs™ Manual
- FindBugs:Eclipse插件
- Eclipse的FindBugs插件
- FindBugs --Eclipse插件
- Eclipse安装Findbugs插件
- FindBugs:Eclipse插件 用法
- java-线程池(二)
- jquery 放大镜效果 jqzoom_心碎逍遥_新浪博客 http://blog.sina.com.cn/s/blog_4b5bc011010133rq.html
- sublime的代码格式化
- dojo/request/xhr
- [BASIC-21] Sine之舞
- Eclipse插件之Findbugs
- jQuery--base64前台加密解密
- 梦里的路
- python循环删除的陷阱
- OPENCV
- wap和net区别
- JPA Multiple writable mappings exist for the field [{0}]. Only one may be defined as writable, all o
- List.toArray()出现ClassCastException
- linux 无root权限安装tmux