我正在使用带有 PMD Plug-in (4.0.0.v20130510-1000)
的 Eclipse,并且遇到了很多这些违规情况:
发现变量 'freq' 的 'DD' 异常(行 '187'-'189')。
发现变量 'freq' 的 'DU' 异常(行 '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();
如果我删除初始化并在catch
块中添加freq = 0;
一行,则DD异常消失,但两个赋值语句都会出现DU异常。
现在我的问题是:我应该如何处理?PMD的首选解决方案是什么?这条规则到底试图防止什么(即为什么它是不好的做法)?