Или как насчет того, чтобы делать это немного аккуратно ....
int retries = 3;
while (retries > 0)
{
if (DoSomething())
{
retries = 0;
}
else
{
retries--;
}
}
Я полагаю, что исключение исключений в металле можно исключить как механизм, если вы не проходите мимо них между границами (например, люди могут использовать). Почему бы просто не вернуть команду DoSomething()
true
, если она была успешной, и false
в противном случае?
EDIT: И это может быть инкапсулировано внутри функции, как и другие. Проблема только в том, что вы сами не записываете функцию DoSomething()