当网络连接丢失时,保持程序从错误状态

时间:2016-12-07 16:59:34

标签: c#

我去了代码审查社区查看我制作的代码片段。如果数据库存在网络连接问题,他们似乎对我用来保持程序运行的方法特别感兴趣。我已经在下面发布了我的问题的链接。

Link to Code Review Question

我的问题是,在与数据库连接丢失的情况下,保持程序运行的最佳做法是什么?

问题中的代码

private void ReestablishDatabaseConnection()
        {
            bool broken = true;
            conn.ConnectionString = r.getSQLConnString();

            while (broken)
            {
                System.Threading.Thread.Sleep(30000);
                try
                {
                    conn.Open();
                    conn.Close();
                    broken = false;
                }
                catch (Exception){}
            }
        }

1 个答案:

答案 0 :(得分:0)

  

我向你们提出的问题是,保持一个人的最佳做法是什么?   程序在运行时与数据库的连接丢失了吗?

这取决于应用程序的类型。

从当前代码中,如果机器无法连接到数据库,并且如果您调用此方法一次,那么它将继续在循环内运行!

因此,它只会浪费CPU周期而无所作为。

我建议您丢弃此代码,不要太在意代码中的连接问题。使用适当的异常记录处理它们。并且,您可以尝试重新连接2-3次或更多次,具体取决于应用程序的严重程度。

如果出现网络错误或任何错误/异常,请进行正确的日志记录,并妥善保管问题得到妥善处理,不会造成任何生产损失。

关于提示部分,不要因为异常而让您的代码无法运行或中断。

以这样的方式设计您的应用程序:从用户的角度来看,他/她不会对功能感到沮丧,您也应该对应用程序进行控制。