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