尝试/捕获数据库连接?

时间:2011-12-12 12:22:09

标签: c# database entity-framework

我正在制作一个网站,我使用实体框架连接到数据库。 我应该放一个

    try
    {
var query = from es in gr.sales
                        orderby es.tilbudsNavn
                        select es;
    }
    catch
{
lblError = "Sorry but you can't connecto to the database right now, try again later";
}

围绕我所有的数据库连接??

6 个答案:

答案 0 :(得分:3)

可能不会 - 除非您想忽略无法连接到数据库的情况(这可能会使其无效)。一些适当的错误处理,你重定向到一个错误页面,如果可能的话,执行某种通知(即发送一封电子邮件,其中包含错误的详细信息)将会更有用。

答案 1 :(得分:1)

您应该从一个地方管理对数据库的访问。并且,是的,在那个单独的地方,connect-statement应该用try-catch包围,以便于记录和错误报告。

答案 2 :(得分:0)

使用try catch语句来处理任何可能的错误总是一个好主意。文件处理,数据库处理,与您的应用程序的任何i / o通常是一个好主意包装错误处理代码,希望可以恢复错误或退出信息性消息和通知用户和管理员。

答案 3 :(得分:0)

只有您可以在catch子句中执行有用的操作。绝不使用空的catch子句,因为这将吞下所有db错误。

答案 4 :(得分:0)

最好使用带有多个参数的Try-Catch创建一个方法,其中一个是lambda或func或要执行的操作。

所以你所有的处理都在一个地方。

另外,您可以在此处阅读herehere

答案 5 :(得分:0)

http://blogs.msdn.com/b/ericlippert/archive/2008/09/10/vexing-exceptions.aspx

Eric Lippert有一篇关于例外的好文章。它描述了应该捕获的内容和不应该捕获的内容。

至于你的例子,我将数据库连接异常放入应该捕获的“外生”类型。至少对于正确的错误处理,如果数据库访问很重要,请使用适当的消息/日志记录关闭应用程序。

相关问题