空のコレクションが供給されることがあるWebサーバーからファイルをダウンロードする機能があります。私がそのコレクションでそれぞれを呼び出す関数では、関数が終了し、各クロージャーがまったく実行されないことが予想されます。問題は、空のfilename
パラメーターで実行され、ファイルではなくディレクトリがフィードされると、FileOutputStreamの作成がブームになることです。
def get(String baseUrl, List files, String targetDir) {
files.each { filename ->
// Goes BOOM on next line
def fos = new FileOutputStream(targetDir + File.separator + filename)
...
}
Groovyがこのように動作するのはなぜですか?代わりに何をすべきですか?