2009-11-24 55 views
5

有什麼方法可以找出Java代碼中的所有空的catch塊? 我知道有一些工具像PMD那樣做,但我使用的是RSA。有什麼方法可以編寫正則表達式來搜索空的catch塊?如何在Java代碼中找到空的catch塊

更新: 我正在公司機器上工作,我不能安裝新軟件。

+0

爲什麼會使用RSA禁止你使用PMD,CheckStyle的等等?那裏還有其他要求嗎? – 2009-11-24 11:50:50

回答

6

Eclipse的Java編譯器可以被配置成產生警告(或錯誤消息),用於空的語句:

爪哇>編譯器>錯誤/警告>空語句

如果您不使用eclipse,則可以使用batch compiler (Running the batch compiler)

但是你也可以使用其他Java工具。 使用Java庫不是軟件安裝。只要JRE未被安全管理器配置鎖定,這應該始終有效。

+1

這幫了我,當然不是確切的方法。而不是用於「無證空白區塊」的「空白陳述」。這實際上找到了所有空的catch塊。 – micheal 2009-11-25 09:49:22

+0

謝謝,太好了! :)也發現所有可能需要一些註釋的空構造函數等。 – 2011-06-27 09:39:07

2

事情是這樣的:

catch[\s]*\([^\)]*\)[\s]*{[\s]*} 

這將返回空catch陳述,而不是那些與評論。

+2

不要忘記編譯'Pattern.MULTI_LINE'。你忘了在代碼塊中排除註釋。 – 2009-11-24 11:51:03

2

從命令行使用PMD,從Ant腳本或使用Maven構建項目。這樣,您可以自動構建並測試您的交付物並運行諸如PMD或FindBugs之類的工具。

9

您可以使用正則表達式:

catch\s*\([^\)]*\)\s*\{((/\*(.|[\r\n])*?\*/)|\s)*\} 

如果這個子表達式,在Stephen Ostermiller's website發現,任何Java註釋匹配:

/\*(.|[\r\n])*?\*/ 
+0

謝謝保羅!爲我節省了一些工作。 – 2015-11-25 09:40:49