尝试catch块,如果成功,则继续执行

时间:2018-10-19 03:54:45

标签: c# exception exception-handling sqlexception

您好,在静态类上有以下方法,如果有特定的异常类型,我想重试'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),并在60秒的时间内重试对RefreshDb的调用。一旦捕获到异常,我该如何重试几次,而且...

  • 如果成功,则不加任何限制地离开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 
    }
}

0 个答案:

没有答案