我正在使用 EclipsePMD Plug-in (4.0.0.v20130510-1000)
并遇到很多违规行为:
Found 'DD'-anomaly for variable 'freq' (lines '187'-'189').
Found 'DU'-anomaly for variable 'freq' (lines '189'-'333').
在这个SO 答案中,它说这些异常与分配从未读取过的值有关。但在这种情况下,我得到了违规行为:
// here I get a DD anomaly
double freq = 0;
try {
// here I get a DU anomaly
freq = Double.parseDouble(getFrequencyTextField().getText());
} catch (final NumberFormatException e) {
Log.e(e.getMessage());
}
if (freq < 10E6) doSomething();
如果我删除初始化并freq = 0;
在块中添加一行catch
,则 DD 异常消失,但我在两个分配中都得到了 DU 异常。
现在我的问题是:我应该如何处理?PMD 的首选解决方案是什么?这条规则究竟是为了防止什么(即为什么这是不好的做法)?