При выполнении кода:
for (int j = a ; j <= b; j++) {
try {
Document doc = Jsoup.connect("какой-то URL" + j).ignoreHttpErrors(true).timeout(1000 * 5).get();
}
}
Иногда выскакивает ошибка SocketTimeoutException
.
Могу ли я обработать ее таким образом, чтобы цикл продолжил работу с места возникновения ошибки? Верна ли моя реализация?
catch (SocketTimeoutException ste) {
System.out.println("Не удаётся подключиться. Пробуем снова");
j--;
continue;
}
могу ли я обработать ее таким образом, чтобы цикл продолжил работу с места возникновения ошибки?
Да, можете.
Верна ли моя реализация?
Да, верна.
Для проверки Вы можете изначально задать маленький тайм-аут.
Например, результат выполнения вот этого кода:
for (int j=1; j<=10; j++) {
try {
System.out.println("Итерация #" + j);
Document doc = Jsoup.connect("https://www.yandex.ru/").timeout(100).get();
System.out.println(" - Ок");
} catch (SocketTimeoutException ste) {
System.out.println(" - Fail");
j--;
continue;
}
}
У меня вот такой:
Итерация #1
- Ок
Итерация #2
- Fail
Итерация #2
- Ок
Итерация #3
- Ок
Итерация #4
- Ок
Итерация #5
- Fail
Итерация #5
- Ок
Итерация #6
- Ок
Итерация #7
- Ок
Итерация #8
- Fail
Итерация #8
- Ок
Итерация #9
- Ок
Итерация #10
- Fail
Итерация #10
- Fail
Итерация #10
- Ок
Разумеется, у Вас он может быть другой.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Хочу сделать поиск в определенной активити в приложении, немного запуталась в тьюториалахХочу добавить в MainActivity, стандартный поиск при нажатии...
На данный вопрос уже ответили: