配置checkstyle以忽略空的catch块

时间:2013-03-19 13:32:41

标签: java eclipse checkstyle

在我的团队中,我们使用checkstyle来提高编码标准,但现在我们遇到了一条可以改进的规则。

空块规则向我们发出关于空catch块的警告(没有java代码且没有注释),但是如果块包含注释,则使用标准配置它也会生成警告。

e.g。

这两个不应该发出警告:

try {
    // some code
} catch (NumberFormatException ignore) {
    // ignore
}

try {
    // some code
} catch (NumberFormatException e) {
    logger.debug("some debug");
}

这会产生警告:

try {
    // some code
} catch (NumberFormatException ignore) {

}

如果catch块中没有注释且没有java代码,我们如何才能改进checkstyle,只给我们一个警告?

我找了一个解决方案,但我的stackoverflow和google没有任何解决方案。

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:5)

这个问题是如何定制Checkstyle的一般问题:

用于定制块检查的Checkstyle文档位于:

您需要的具体样式配置是:

  <module name="EmptyBlock">
    <property name="option" value="text"/>
    <property name="tokens" value="LITERAL_CATCH"/>
  </module>

答案 1 :(得分:2)

https://github.com/checkstyle/checkstyle/issues/571解决了这个问题,创建了新的Check - EmptyCatchBlock - http://checkstyle.sourceforge.net/config_blocks.html#EmptyCatchBlock

在配置EmptyBlock中,请删除CATCH令牌,因为验证将通过不同的立即检查

完成