4

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

Empty Block 规则给我们一个关于空 catch 块的警告(没有 java 代码和没有注释),但在标准配置中,如果块包含注释,它也会生成一个警告。

例如

两者不应导致警告:

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 和谷歌没有任何解决方案。

有人能帮我吗?

4

2 回答 2

5

这个问题回答了如何定制 Checkstyle 的一般问题:

用于定制块检查的 Checkstyle 文档在这里:

而你需要的具体样式配置是:

  <module name="EmptyBlock">
    <property name="option" value="text"/>
    <property name="tokens" value="LITERAL_CATCH"/>
  </module>
于 2013-03-19T13:56:17.727 回答
2

该问题已在https://github.com/checkstyle/checkstyle/issues/571得到解决,新检查已创建 - EmptyCatchBlock - http://checkstyle.sourceforge.net/config_blocks.html#EmptyCatchBlock

在配置 EmptyBlock 中,请移除 CATCH 令牌,因为验证将由不同的 Check now 完成

于 2015-03-30T12:23:23.337 回答