我繼承了一些編譯時出錯的代碼。我得到兩個錯誤之一:其中一個,return
聲明丟失,或另一個我有不匹配的throw
/try
/catch
。這個錯誤似乎是與return
聲明的位置有關,我一直在整個上午都在移動。其當前位置收益率爲error: missing return statement
。任何被註釋掉的回報都會產生一條消息,我必須聲明try
或catch
與我的throw
。JAVA:爲什麼在編譯期間返回錯誤?
考慮:
static private List<File> getFileListingNoSort(File aDirectory) throws FileNotFoundException {
try {
List<File> result = new ArrayList<File>();
File[] filesAndDirs = aDirectory.listFiles();
List<File> filesDirs = Arrays.asList(filesAndDirs);
for(File file : filesDirs) {
result.add(file); //always add, even if directory
if (! file.isFile()) {
List<File> deeperList = getFileListingNoSort(file);
result.addAll(deeperList);
// return result;
} //close if
// return result;
} // close for
} // close try for getFileListingNoSort
// return result;
catch (Exception exp) {
System.err.println("Error: " + exp.getMessage());
} //close catch getFileListingNoSort
return result;
} //close method
我認爲的回報將在嘗試後去的,但趕上了。但是,這並不適合我。我不是很確定爲什麼我要得到這些地區,除了誤解節目如何與try
/catch
流動。有人能告訴我最合適的迴歸地點,並解釋原因嗎?