我继承了一些编译时出错的代码。我收到以下两个错误之一:一个是return
声明丢失,另一个是我的//throw
不匹配try
。catch
这个错误似乎与return
声明的位置有关,我整个上午都在移动。它目前的位置让步error: missing return statement
。被注释掉的任何一个返回都会产生一条消息,我必须try
用catch
我的throw
.
考虑:
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
。谁能告诉我最合适的退货地点并解释原因?