2009-11-24 48 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

相关问题