コンパイル時にエラーになるコードを継承しました。2つのエラーのいずれかが発生します。1つはreturn
ステートメントが欠落していること、もう1つは不一致の//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
。誰かが私に帰りの最も適切な場所を教えて、その理由を説明できますか?