try-catch的小讨论

王朝c#·作者佚名  2006-12-17
宽屏版  字体: |||超大  

最近发现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;

}

///<summary>

///关于try的跳转问题

///下面代码将触发一个error,但是ex的信息为空

///不论条件如何,else得不到响应

///else满足的情况下,将执行catch的代码

///故使用finally

///原因:

///可能是try没有执行完,跳转时,引发unload_Page,此时catch起作用

///</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会引发一个线程正在被中止的异常

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有