Как обработать код для сбоя сети и вернуться обратно? - PullRequest
0 голосов
/ 07 мая 2009

предположим, что я нахожусь в процессе обновления некоторой информации, и сетевое соединение прерывается.

Как мне написать свой код для обработки такой ситуации и возобновить с того места, где код выполнялся в последний раз?

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

В то время как (NetworkProblem) {

NetworkProblem = false; попробуйте {

// шаг 1 - чтение информации из БД // шаг 2 - сохранение на объектах класса // шаг 3 - обновление информации // шаг 4 - подключение к другому веб-серверу // шаг 5 - обновить информацию

} задвижка (NetworkgoneException) { NetworkProblem = true;
// попробуйте снова подключиться - это снова, я не знаю, сколько времени займет. }

}

1 Ответ

2 голосов
/ 07 мая 2009

В принципе ваш подход кажется нормальным. Некоторые моменты для рассмотрения:

  • Вы не хотите повторяться бесконечно. Имейте некоторое максимальное число повторов, затем прекратите.
  • Для бонусных баллов различайте ошибки, которые стоит повторить, от ошибок, которых нет (например, отрицательный ответ DNS).
  • Подумайте о том, чего вы пытаетесь достичь в своем общении. Что делать, если некоторые данные проходят, а некоторые нет? Вам нужна какая-то концепция транзакции, чтобы избежать дублирования действий?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...