1

これは私の DAL です。コードを試したりキャッチしたりしようとしていますが、概念が私の中でそれほど成長していないため、次の疑問があります。実際に何かを実行するのはExecuteSQLメソッドです。そこで、try/catch を 1 回行います。しかし、GetLineaまたはUpdateLineaにも追加する必要がありますか? そこにはかなり奇妙なエラーしか思い浮かびません。

また、このコードのクリーンアップに関する提案があれば、ぜひお知らせください。ありがとう。

namespace DAL
{
    public class Connection
    {
        public string GetNewConnection(string server)
        {
            return ConfigurationManager.ConnectionStrings[server].ConnectionString;
        }

        public DataSet ExecuteSQL(string sp)
        {
            DataSet ds = new DataSet();
            string connectionString = GetNewConnection("BO");
            SqlConnection conn = new SqlConnection(connectionString);
            SqlCommand command = new SqlCommand(sp, conn);
            command.CommandType = CommandType.StoredProcedure;
            SqlDataAdapter da = new SqlDataAdapter(command);
            using (conn)
            {
                da.Fill(ds);
            }
            return ds;
        }
    }
    public class LineaDAL
    {
        Connection obj = new Connection();
        public DataSet GetLinea()
        {
            DataSet ds = new DataSet();
            string sp;
            sp = "sp1";
            ds = obj.ExecuteSQL(sp);
            return ds;
        }

        public bool UpdateLinea(string reclamo)
        {
            DataSet ds = new DataSet();
            string sp;
            sp = "sp2";
            ds = obj.ExecuteSQL(sp);
            return ExtensionMethods.IsEmpty(ds);
        }
    }

    public static class ExtensionMethods
    {
        public static bool IsEmpty(this DataSet ds)
        {
            return ds == null ||
              !(from DataTable t in ds.Tables where t.Rows.Count > 0 select t).Any();
        }
    }

}
4

4 に答える 4

1

エラーをログに記録することをお勧めします。

何かのようなもの:

try
{
...
}
catch(Exception ex)
{
    Log(ex.Message);
    MessageBox.Show("Error Occured. Please try again later."); //General message to the user 
}
finally
{
    Cleanup... like Disposing objects (like com objects) if they need to be disposed.
}

Loggin の目的で Log4Net のようなものを使用できますが、独自のロガーを構築することもできます。

コードの一部がバグを引き起こす可能性があると思われる場合は、バグを引き起こす可能性のある条件を処理したと確信していても、try/catch を使用することをお勧めします。あなたの場合、例外が発生した場合に確実に処理されるようにするために、使用しないでください。

于 2012-07-11T12:57:34.077 に答える