Как повторить попытку открывать файл свойств в Java
-
01-10-2019 - |
Вопрос
Я пытаюсь справиться с 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(...);
}