Исключения, и как лучше всего повторить попытку при сбросе соединения?

У меня есть код, который подключается к URL-адресу для загрузки файла, а затем выполняет некоторую обработку с ним. Однако иногда я получаю сообщение об ошибке java.net.SocketException: Сброс соединения .

Я хочу повторить попытку загрузки файла, когда я получаю эту ошибку, скажем, максимум 3 раза, прежде чем отказаться в теме. Я хотел бы знать, как лучше всего это структурировать.

Следующее выглядит нормально. Кажется ли приемлемым разместить блок try-catch внутри цикла while или есть лучший подход?

Любая помощь приветствуется!

while(!connected && retries > 0) {
  retries--;
  URL downloadUrl;
  URLConnection conn;

  try {
    downloadUrl = new URL(url);
    conn = downloadUrl.openConnection();
    conn.connect();
    connected = true;
    // Perform processing on downloaded file here

  } catch (IOException e) {
    Logger.batchLog(e);
  }
} 
8
задан palacsint 30 April 2012 в 13:26
поделиться