我試圖鼓勵不捕捉Java代碼中的一般異常的最佳做法。例如:有沒有辦法使日食報告作爲一個錯誤/警告(在Java中)的一般「catch(Exception e)」?
try {
...
} catch (Exception e) { // bad!
...
}
有沒有一種方法來標記這是Eclipse中的錯誤/警告?
我知道PMD選擇了這一點,但我寧願避免將它整合到每個人的構建環境中。
我試圖鼓勵不捕捉Java代碼中的一般異常的最佳做法。例如:有沒有辦法使日食報告作爲一個錯誤/警告(在Java中)的一般「catch(Exception e)」?
try {
...
} catch (Exception e) { // bad!
...
}
有沒有一種方法來標記這是Eclipse中的錯誤/警告?
我知道PMD選擇了這一點,但我寧願避免將它整合到每個人的構建環境中。
據我所知,它不在Window - > Preferences - > Java - > Compiler - > Errors/Warnings列表中,因此不可能 - 除非你喜歡編寫自己的ecliple插件。
你可以使用Checkstyle eclipse插件來做同樣的事情。檢查 'IllegalCatch' 部分在documentation
FindBugs
可以舉報此:
REC
:Exception
時Exception
沒有拋出(REC_CATCH_EXCEPTION
)此方法使用
try-catch
塊捕獲Exception
對象被捕獲,但Exception
不在try
塊內,RuntimeException
未被明確捕獲。將try { ... } catch (Exception e) { something }
作爲捕捉各個catch塊相同的異常類型的簡寫形式是一種常見的錯誤模式,但是此構造也意外捕獲了RuntimeException
,以掩蓋潛在的錯誤。
在每一個版本上運行FindBugs,CheckStyle或PMD會減慢每個人的構建,我想這就是爲什麼你在看Eclipse方法。不幸的是,這可能也有問題,取決於插件的可用性(和穩健性)。另外,你仍然會在增量和(特別是)完整的項目構建中獲得性能。
另一種方法是設置一個Hudson持續集成服務器並將其配置爲運行樣式檢查器,覆蓋工具等,使用Sonar plugin隨時間跟蹤結果。
Checkstyle是你想要的。一個相當簡單的配置eclipse插件可以將代碼庫中的樣式問題報告爲警告或錯誤。更好的是,將它與哈德森連接起來,形成一個優秀的持續集成環境。 – 2010-04-19 19:08:41