Попробуйте блок catch и продолжите выполнение, если все прошло успешно - PullRequest
0 голосов
/ 19 октября 2018

Привет, у меня есть следующий метод для статического класса, который я хотел бы повторить 'x' количество раз, если есть определенный тип исключения.

Прямо сейчас, вот как это выглядит.

public static void myMethod(DbContext context, ISettings settings)
{
    try
    {
        RefreshDb(context, settings);
    }
    catch (Exception e)
    {
        throw new Exception("Error on method RefreshDb", e);
    }
    finally
    {
        // Do something here 
    }
}

Я хочу перехватить один конкретный тип исключения (в данном случае SqlException) и повторить вызов RefreshDb несколько раз в течение 60 секунд.Как только я получу исключение, как я могу повторить несколько раз, а также ...

  • В случае успеха оставьте блок catch без броска и продолжите выполнение моего кода (наконец, часть в этом случае)
  • В случае неудачи выведите реальное исключение.

.

public static void myMethod(DbContext context, ISettings settings)
{
    try
    {
        RefreshDb(context, settings);
    }
    catch (SqlException e)
    {
        // Call RefreshDb here again.
    }
    catch (Exception e)
    {
        throw new Exception("Error on method RefreshDb", e);
    }
    finally
    {
        // Do something here 
    }
}
...