0
我最近開始使用PMD來保持我的代碼清潔,並且它進行得很順利,但是我在以下函數中遇到了一些問題。功能中的DD和DU異常
private final void readFile() throws Exception{
code.clear();
imports.clear();
//DD anomaly
FileReader fileReader = null;
BufferedReader bufferedReader = null;
try{
fileReader = new FileReader(file);
bufferedReader = new BufferedReader(fileReader);
String line;
//DU anomaly
boolean code_started = false;
//DU anomaly
while((line = bufferedReader.readLine()) != null){
if(code_started) code.add(line);
else{
if(lineIsImport(line))
imports.add(line);
else if(lineIsClassDeclaretion(line)){
code_started = true;
code.add(line);
}
}
}
}
catch(FileNotFoundException fn_ex){
throw new Exception("File not found!");
}
catch(IOException io_ex){
throw new Exception("Failed to read file: " + file.getName() + "!");
}
finally{
try{
if(bufferedReader != null)
bufferedReader.close();
if(fileReader != null)
fileReader.close();
}
catch(IOException io_ex){
throw new Exception("Failed to close reader");
}
}
}
第一個DD異常:
FileReader fileReader = null;
BufferedReader bufferedReader = null;
如果我不設置既要空異常消失,但我在finally塊得到一個錯誤。我不知道寫這個的正確方法應該是什麼。
其次是DU異常:
boolean code_started = false;
如果我不設置該變量的異常消失,但同樣的錯誤了幾行了。
最後是DU異常:
while((line = bufferedReader.readLine()) != null)
這種異常現象可能是相同的,如上圖所示,但同樣我不知道如何解決它。
如果有人能夠解釋或顯示如何以不會導致PMD顯示異常的方式編寫此函數,我將不勝感激。
謝謝。這解決了第一個異常。看到如何在老版本的java中解決這個問題真是太棒了。現在我對**布爾變量**很好奇,因爲那是我根本不理解的。 – Reiten
什麼是布爾的異常說法? – utkarsh31
我相信隨着更新版本的語言的發佈,這些工具會不斷更新。在PMD中部署項目以選擇語言版本時是否有一個選項? – utkarsh31