Повторите попытку после исключения в delphi

#delphi #try-except #delphi-10.4-sydney

Вопрос:

У меня есть к вам вопрос.

У меня есть следующий фрагмент кода.

 try
 //some code that fails
except
 // code to retry the code that fails
end 
 

Теперь я хочу повторить неудачный код после исключения. Возможно ли это сделать в Дельфах?
Таким образом, у вас есть своего рода цикл, который повторяется после исключения 3/4 раза. и если это не сработало в 4-й раз, то выдайте сообщение об ошибке.

Комментарии:

1. Да, вы сами сказали: используйте петлю. И, очевидно, счетчик.

2. @AndreasRejbrand, конечно! глупо с моей стороны, что я не подумал об этом.

Ответ №1:

Я часто использую эту конструкцию:

 FOR I:=1 TO Retries DO BEGIN
  TRY
    <Code>
    BREAK
  EXCEPT
    <Report/Log failure, prepare for next iteration>
  END
END
 

таким образом, он несколько раз повторяет «Повторные попытки», но если в какой-то момент это удается, он выходит из цикла.

Часть, ЗА ИСКЛЮЧЕНИЕМ, должна подготовиться к следующей итерации цикла повторных попыток (например, удалить все файлы, созданные в результате сбоя кода и т.д.), Возможно, защищенные

 IF I=Retries THEN
  RAISE
ELSE BEGIN
  <Report/Log failure, prepare for next iteration>
END