ASP.NET逻辑/连接池和错误处理

时间:2008-11-14 08:10:08

标签: asp.net error-handling logic

我刚刚上传了我的第一个ASP.NET(作为我学习vb.net的一部分)并且陷入了连接池的困境(当你的网站有超过1个用户时会发生有趣的事情)现在全部排序通过更好地使用try catch语句(这个想法是为了学习)但是我想知道这是否是最佳/最终方法,现在如果尝试失败,那么页面上的大量细节不会被放置/更新,所以如果你正在做一些数据库工作并且尝试失败,你是否重新加载页面...重定向到自己并希望它下次工作...或只是通知用户有错误,他们应该再试一次?

由于

3 个答案:

答案 0 :(得分:0)

我永远不会自动重定向,并希望它下次可以工作(你可能会进入无限循环)。

通知用户以及可选的链接以再次尝试。

您甚至可能想要分析您的异常,看看是否有其他尝试有帮助。一些例外是真正的错误,另一个尝试无济于事。

答案 1 :(得分:0)

如果发生意外错误,请将用户重定向到错误页面,因为它可能会在下次发生时发生。

您是否查看了数据库连接和读者的“使用”语句?

答案 2 :(得分:0)

您应该对实现using的所有对象(例如连接和读取器)使用“IDisposable”语句。 'using'语句被转换为封面下的try-finally块,并确保即使发生错误也会调用Dispose()。

以下是代码段示例:

using (SqlConnection conn = new SqlConnection(this.connectionString))
{
    using (SqlCommand cmd = conn.CreateCommand())
    {
        cmd.CommandText = "LoadFromRepository";
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@ID", fileID);

        conn.Open();
        using (SqlDataReader rdr =
                   cmd.ExecuteReader(CommandBehavior.CloseConnection))
        {
            while (rdr.Read())
            {
                // do something with read data
            }
        }
    }
}