0

私は(vb.netの学習の一環として)最初のASP.NETをアップロードし、接続プール(Webサイトのユーザーが複数いる場合に面白いことが起こります)でひどい混乱に陥りました。 try catchステートメントの(よくアイデアは学ぶことでした)しかし、これが最良の/最終的な方法であるかどうか疑問に思っていましたが、tryが失敗した場合、ページの詳細の多くは配置/更新されません。データベース作業を行っていて、試行が失敗した場合、ページをリロードしますか...自分自身にリダイレクトして、次回それが機能することを期待します...または、エラーが発生したことをユーザーに通知して、再試行する必要がありますか?

ありがとう

4

3 に答える 3

0

私は自動的にリダイレクトすることは決してなく、次回それが機能することを望んでいます(無限ループになる可能性があります)。

ユーザーに通知し、オプションでリンクを通知して再試行します。

例外を分析して、別の試行が役立つかどうかを確認することもできます。いくつかの例外は本当にバグであり、別の試みは役に立ちません。

于 2008-11-14T08:16:02.880 に答える
0

予期しないエラーが発生した場合は、次回も発生する可能性があるため、ユーザーをエラー ページにリダイレクトします。

DB接続とリーダーの「Using」ステートメントを調べましたか?

于 2008-11-16T08:22:15.753 に答える
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
            }
        }
    }
}
于 2008-11-16T08:28:34.680 に答える