try-catch的小讨论

最近发现try跳转的小问题,如下
private void Page_Load(object sender, System.EventArgs e)
{

Uri Baseurl=Request.UrlReferrer;
if(Request.Form["UserName"]==null || Request.Form["Pass"]==null)
{
Panellogin.Visible=false;
Panellogout.Visible=true;
}
else
{
string User=Request.Form["UserName"].ToString();
string Pass=Request.Form["Pass"].ToString();
STUWeb.localhost.Servicestu ws = new STUWeb.localhost.Servicestu();
ws.Credentials = System.Net.CredentialCache.DefaultCredentials;

dsSTU.Merge(ws.GetSTU(User));
try
{
if(Pass==dsSTU.STU.Rows[0]["Ping"].ToString().Trim())
{
DataGrid1.DataBind();
Label1.Text+="用户的信息如下:";
Panellogin.Visible=true;
Panellogout.Visible=false;
}
///

1<summary>   
2///关于try的跳转问题   
3///下面代码将触发一个error,但是ex的信息为空   
4///不论条件如何,else得不到响应   
5///else满足的情况下,将执行catch的代码   
6///故使用finally   
7///原因:   
8///可能是try没有执行完,跳转时,引发unload_Page,此时catch起作用   
9///</summary>

//else
//{
// Response.Redirect("/STUWeb/login.aspx?id=2&User="+User);
//}
}
catch(Exception ex)
{
Response.Redirect("/STUweb/login.aspx?id=1");
}
finally
{
if(Pass!=dsSTU.STU.Rows[0]["Ping"].ToString().Trim())
{
Response.Redirect("/STUWeb/login.aspx?id=2&User="+User);
}
}
}
}
呵呵,是我初出茅庐不怕虎啊,什么都敢乱用,都不晓得

Response.Redirect会引发一个线程正在被中止的异常

Published At
Categories with Web编程
Tagged with
comments powered by Disqus