我正在使用带有PMD插件的Eclipse(4.0.0.v20130510-1000)并获得了大量违规并解决了大部分违规行为,但我不明白为什么 DD anomaly
发生在下面的代码中
private boolean createFile(final String szFileName){
final File oFile = FileUtils.getFile(szFileName);
boolean bStatus;
try {
FileUtils.touch(oFile);
bStatus = true; // DD anomaly
} catch (IOException e) {
log.error("Failed to create new file. "+ e);
bStatus = false;
}
return bStatus;
}
我不能使用多个return语句,因为multiple exit point
规则会中断。
尝试了另一种方式,但将DD异常变为另一条线,
private boolean createFile(final String szFileName){
final File oFile = FileUtils.getFile(szFileName);
boolean bStatus = true; // DD anomaly
try {
FileUtils.touch(oFile);
} catch (IOException e) {
log.error("Failed to create new file. "+ e);
bStatus = false;
}
return bStatus;
}
答案 0 :(得分:1)
另一种方法是让createFile
抛出IOException
并在上游处理它。然后你可以createFile
返回void
,或者更好,让它返回它创建的文件。这将摆脱你收到的DD anomaly
。
替代createFile
:
private File createFile(final String szFileName) throws IOException {
final File oFile = FileUtils.getFile(szFileName);
FileUtils.touch(oFile);
return oFile;
}