Как повторить попытку открывать файл свойств в Java

StackOverflow https://stackoverflow.com/questions/2712880

Вопрос

Я пытаюсь справиться с FileNotFoundException В Java, приостановив нить в течение x секунд и перечитаю файл. Идея этого состоит в том, чтобы редактировать свойства во время выполнения.

Проблема в том, что программа просто прекращает. Любая идея, как реализовать это решение?

Это было полезно?

Решение

Загружайте файл в цикле и установите переменную, что условие зависит от того, как файл будет успешно прочитан. Используйте блок Try-Catch внутри петли и выполните ждать в блоке Catch.

Другие советы

Есть хороший рецепт, изначально BJARNE STROUSROUP для C ++, портировал здесь в Java:

Result tryOpenFile(File f) {
  while (true) {
    try {
      // try to open the file
      return result; // or break
    } catch (FileNotFoundException e) {
      // try to recover, wait, whatever
    }
  }
}

Некоторые фрагменты кода будут полезны, но одно из следующих может быть проблемой:

  • Ваш код успешно ловит первое filenotfoundException, но после просыпки кода не успешно обрабатывает второй
  • Другое исключение бросается, что не обрабатывается. Попробуйте временно упаковать в вопросе кода с catch (Exception e) Чтобы посмотреть, что исключение брошено
  • Программа, которую вы используете для редактирования файла, - это «блокировка» файл свойств и возможно, предотвращая доступ своим кодом Java.

Удачи

Если исключение никогда не поймано, нить прекращается. Если это ваша основная нить, приложение заканчивается. Попробуйте следующее:

try
{
   props.load(...);
}
catch (FileNotFoundException ex)
{
   Thread.sleep(x * 1000);
   props.load(...);
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top