Eclipse外掛之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工程,寫了一個存在風險的類
對於編碼習慣不好的人或者新手,程式碼的比較不容易看出來
右鍵findbugs_example開始找風險,提示我的工程有兩個風險,點進去發現兩個黃色臭蟲
[img]http://dl2.iteye.com/upload/attachment/0097/3400/53a36c9f-0e98-3655-96ac-133f789724df.jpg[/img]
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開始找風險,提示我的工程有兩個風險,點進去發現兩個黃色臭蟲
[img]http://dl2.iteye.com/upload/attachment/0097/3400/53a36c9f-0e98-3655-96ac-133f789724df.jpg[/img]
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為你做的僅僅是找到一些比較簡單的風險
相關文章
- Findbugs外掛使用圖文指南
- [eclipse]eclipse之tomcat外掛使用EclipseTomcat
- Activiti之eclipse外掛安裝Eclipse
- OSGI之 Eclipse 外掛使用OSGIEclipse
- Eclipse外掛Eclipse
- eclipse 外掛Eclipse
- eclipse vim外掛Eclipse
- Eclipse安裝lombok外掛及外掛使用案例EclipseLombok
- eclipse中的yaml外掛EclipseYAML
- Eclipse外掛開發demoEclipse
- eclipse的propedit外掛地址Eclipse
- eclipse marketplace外掛安裝Eclipse
- Eclipse 安裝Groovy外掛Eclipse
- Eclipse外掛安裝(一)Eclipse
- Eclipse外掛的安裝Eclipse
- eclipse 安裝svn外掛Eclipse
- ModelGoon:逆向UML Eclipse外掛GoEclipse
- Eclipse-安裝SVN外掛Eclipse
- Eclipse 中 安裝 SVN 外掛Eclipse
- eclipse開發php的外掛EclipsePHP
- Eclipse 工作流外掛地址Eclipse
- eclipse安裝ADT外掛Eclipse
- eclipse3.3外掛更新攻略Eclipse
- Eclipse外掛安裝總結Eclipse
- 整合Tomcat外掛到EclipseTomcatEclipse
- Eclipse下安裝Flex外掛EclipseFlex
- eclipse spring 外掛問題EclipseSpring
- Eclipse 的JSEclipse 外掛EclipseJS
- 【Eclipse】--Eclipse摺疊程式碼外掛foldingEclipse
- 關於Eclipse 中 svn外掛 和 egit 外掛的安裝EclipseGit
- [Jenkins]詳解jenkins幾個有用的外掛如何使用(emma,findbugs)Jenkins
- mac 下eclipse安裝lombok外掛MacEclipseLombok
- Eclipse安裝Spket外掛並破解Eclipse
- 升級Eclipse的ADT外掛Eclipse
- eclipse安裝color theme外掛Eclipse
- Eclipse外掛開發--聯絡方式Eclipse
- eclipse中ext外掛安裝方法Eclipse
- Eclipse下面的ClearCase外掛安裝Eclipse