2

私はこのコードを持っています

protected void Button_Click(object sender, EventArgs e)
{
    try
    {
        // some code

        con.Open();
        string result = command.ExecuteScalar().ToString();

        if (result != string.Empty)
        {
             // some code
             Response.Redirect("Default.aspx");
        }
    }
    catch (Exception ex)
    {
        throw new Exception(ex.Message);
    }
    finally
    {
        con.Close();
    }

それはからの例外を与えますResponse.Redirect("Default.aspx");

例:スレッドが中止されていました。

なぜですか?

ありがとう

4

2 に答える 2

2

Try...Catch ステートメント内からリダイレクトすると、この例外がスローされるため、これは望ましくありません。

コードを次のように更新します。

string result = string.Empty;

try
{
    // some code
    con.Open();
    result =  command.ExecuteScalar().ToString();        
}
catch (Exception ex)
{
    throw new Exception(ex.Message);
}
finally
{
    con.Close();
}

if (result != string.Empty)
{
     // some code
     Response.Redirect("Default.aspx");
}
于 2013-03-14T16:26:54.217 に答える
0

これは、リダイレクトの実行時に ASP.NET によってスローされる典型的な例外です。これは、Interweb で十分に文書化されています。

次の catch ブロックを試して例外を飲み込んでください。すべて問題ありません。何もしないはずです!

catch(ThreadAbortException)
{
}
catch (Exception ex)
{
    throw new Exception(ex.Message);
}
finally
{
    con.Close();
}
于 2013-03-14T16:27:52.403 に答える