Если загрузка выполняется синхронно, вы должны иметь возможность добавить соответствующее исключение (или вернуть соответствующее значение) для указания сбоя.
Если загрузка выполняется асинхронно, рассмотрите возможность использования шаблона наблюдателя .Вы можете передать реализацию наблюдателя в качестве дополнительного параметра для вашего метода загрузки.
Наблюдатель в вашем случае (например) может выглядеть примерно так:
public interface FileDownloadObserver
{
public void downloadFailed(String file, Object error);
public void downloadSucceeded(String file);
}
Тогда метод загрузки будетвыглядит так:
void download(String file, FileDownloadObserver observer)
throws MalformedURLException, IOException
Все это предполагает, что вы действительно можете обнаружить, что загрузка не удалась.Если нет, возможно, вам придется предоставить дополнительную информацию о том, как вы выполняете загрузку.