У меня есть этот метод расширения, который позволяет мне повторить операцию, если есть исключение, типичное использование пытается записать в файл, но по какой-то причине я не могу так немного повторить попытку позже ...Это хорошая практика?
расширение выглядит следующим образом:
public static void WithRetry<T>(this Action action, int timeToWait = 500, int timesToRetry = 3) where T : Exception
{
int retryCount = 0;
bool successful = false;
do
{
try
{
action();
successful = true;
}
catch (T)
{
retryCount++;
Thread.Sleep(timeToWait);
if (retryCount == timesToRetry) throw;
}
catch (Exception)
{
throw;
}
} while (retryCount < timesToRetry && !successful);
}
Visual Studio говорит мне, что я глотание исключения в первом блоке поймать, это плохо?
Спасибо.
Не напрямую связана с вопросом: вы можете опустить последний кетчуп заявление, как вы все это simly вновь бросить исключение. Связано: проглатывание исключений часто плохо, поскольку вы теряете какую-либо информацию об ошибке. – HimBromBeere
Какое точное сообщение вы получаете от Visual Studio? –
Точка выхода '}' проглатывает исключение! Подумайте о том, чтобы исключить исключение. Это предупреждение, а не ошибка. Я делаю исключение, только не первые n раз ... – franklores