在C#中从类方法返回值时感到困惑

Jon*_*Coe 1 c# asp.net asp.net-mvc-4

我试图在C#中构建一个数据库构造函数(工厂?),但是我很困惑如何在"所有路径返回值"的同时管理错误

例如,这是一个我想用来返回数据库连接的类:

public class DB
{
    static SqlConnection Connect()
    {
        SqlConnection thisConnection;

        try { 
            thisConnection = new SqlConnection(connectionString);
        }
        catch (SqlException e) { Console.WriteLine(e.Message); }

        return thisConnection;
    }
}
Run Code Online (Sandbox Code Playgroud)

显然这不起作用,因为"并非所有路径都返回一个值".

如何在使用方法实际返回值时使用try/catch进行管理?显然我不是一个主程序员;)但我正在研究它.

Hab*_*bib 6

您可以null从catch语句返回或重新抛出异常.但是使用静态连接并不是一个好主意.数据库连接规则应该"尽可能晚地打开并尽早关闭".

您应该将您的连接括在using声明中,以确保在使用块结束时将其处理(关闭).

using(SqlConnection connection = new SqlConnection(connectionString))
{
  //execute your command etc. 
}
Run Code Online (Sandbox Code Playgroud)