微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – Checkstyle报告catch-exception参数的LocalFinalVariableNameCheck错误

我有一个奇怪的问题,我不确定这是两个耳朵之间的问题还是一个checkstyle问题.
运行checkstyle 6.2我们得到了两个,在jenkins和 eclipse这个错误

LocalFinalVariableNameCheck,Priority: normal 

Name 'pEx' must match pattern '^l[A-Z][a-zA-Z0-9]*$'.

这是代码

...
} catch (final XPathExpressionException pEx) {
   throw new ConfigurationException(pEx);
}

为什么checkstyle将catch块定义为局部var而不是param?

解决方法

正如@Dongqing指出的那样,pEx确实是一个局部变量,因此这里的检查适用.

但需要注意的是:此规则的认值为^ [a-z] [a-zA-Z0-9] * $,如checkstyle documentation(工具的最新版本)中所指定.您可能已经定制的模式适合某些本地标准^ l [A-Z] [a-zA-Z0-9] * $.因此,在删除违规之前,您应该确保命名模式确实正常(为什么定义自定义规则,如果它不合适?).

如果你真的想摆脱这种违规行为,Che​​ckstyle提供了各种方法来抑制警告.您可以:

>使用suppression XML file,允许您针对给定范围的行(甚至列范围)禁止特定文件上的特定规则.这样您就不必修改代码,但需要使用所有抑制来维护一个单独的文件.
>使用注释或注释通过在代码添加注释或注释(例如@SuppressWarnings)来禁用警告,其中假阳性为.
这也必须配置.有关详细信息和示例,请参阅上面的链接.

编辑:此Checkstyle规则还允许您调整变量声明或catch子句的模式.以下配置应该适合您:

<module name="LocalVariableName">
    <property name="format" value="^[a-zA-Z0-9]*$"/>
    <property name="tokens" value="ParaMETER_DEF"/>
</module>

在这里,您只为catch子句中的违规指定了一个非常宽容的模式.变量声明不应受到影响,仍然需要检查原始模式.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐