#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